-
Xcode 11 에서 애드훅으로 앱을 배포하는 방법, 드롭박스나 구글 클라우드 이용보다 확실한 배포 방법iOS 2020. 4. 26. 01:00반응형
애드훅은.. 테스트플라이트를 대신해서 배포하는 방식입니다.
테스트플라이트는 애플에서 처리하는데 시간이 걸리므로.. 어느정도 지연이 있습니다.
큰 프로젝트의 경우 2시간은 족히 걸립니다.
이 시간이 꽤나 길기 때문에... 애드훅으로 이걸 단축시켜보자고 생각했습니다.
다만, 튜토리얼등이 Xcode 10.0 기준이라서 지금 상황이랑 조금 달라서, 헤메게 되었습니다.
다른 분들은 헤메지 않도록, 방법을 공유합니다.
기기 등록하기
아카이브하기 전에, 설치할 기기를 등록해 주어야 합니다.
전통적인 방식으로 developer 포탈에 가서 등록해 줄 수도 있겠으나..
기기를 무선으로 연결하고 Xcode 에서 Register Device 를 입력하면 동일한 효과를 냅니다.
아카이브 이후 등록된 기기는 정상적으로 설치되지 않습니다.
아카이브하기
테스트플라이트에서 하는 것처럼 아카이브를 진행합니다.
Distribute App 을 클릭합니다.
Ad Hoc 을 클릭합니다.
Include manifest for over-the-air installation 을 체크합니다.
앱 URL 은 나중에 수정할 수 있으므로, 아무렇게나 입력합니다.
이미지는, 적당히 역시 아무렇게나 입력합니다.
저는 픽섬 사이트에서 아무거나 퍼왔습니다.
사이닝을 클릭합니다.
Generate an Apple Distribution certificate 를 체크합니다.
잘 저장해두시든지 알아서 하시면 됩니다.
이제 익스포트되었습니다.
ipa 파일 추출은 완료되었습니다.
Ipa 파일 배포하기
ipa 파일을 배포하기 위해서는 https 호스팅이 필요합니다.
이전에는 구글 드라이브나 드롭박스에서도 되었던 것 같습니다만, 지금은 가능하지 않습니다.
이미 사용하고 있는 https 서버가 있으면 거기다가 올리시면 됩니다만, 클라이언트 개발자가 https 서버를 구축하기는 귀찮습니다.
일단 저는 firebase hosting 서비스를 사용했습니다.
https://firebase.google.com/docs/hosting
파이어베이스 호스팅은 https 를 간단하게 배포할 수 있게 해줍니다.
무료 제한이 매월 10GB 이하여야 하므로, 그 이상의 규모일 경우에는 다른 호스팅을 알아보시거나 과금하시길 바랍니다.
이것을 지금 이용하는 이유는 제일 간단하기 때문입니다.
https://firebase.google.com/docs/hosting/quickstart
퀵스타트를 따라해 보겠습니다.
Firebase CLI 설치
https://firebase.google.com/docs/cli#install-cli-mac-linux
맥 기준으로 설명하겠습니다.
터미널에 아래 명령어를 입력합니다.
curl -sL firebase.tools | bash
설치되면 아래 명령어를 입력합니다.
firebase login
구글 창이 뜨는데 로그인 허용해 줍니다.
이제 빈 폴더 하나 만들어서 거기에
firebase init 을 눌러 줍니다.
Hosting 에서 스페이스 바 누르고 엔터를 칩니다.
이후 시키는 대로 따라해 줍니다.
호스팅이 생성되었습니다.
이제 public 폴더에 아까 만들었던 파일들을 몽땅 집어넣어 줍니다.
그리고 터미널에
firebase deploy 를 눌러 줍니다.
업로드가 되면, Hosting URL 이 뜹니다.
이 url 을 기억해 줍니다.
애드훅 배포를 위해 plist 파일 수정, html 파일 추가
이제 아까 아무렇게나 입력했던 설치 url 을 손볼 차례입니다.
폴더 manifest.plist 에 들어가서, software-package 을 수정해야 합니다.
우리의 firebase hosting url 경로 상의 ipa으로 손봐주어야 합니다.
해당 경로를 쳤을 때 ipa 파일이 즉시 다운받아지지 않으면,
정상적으로 앱이 설치되지 않습니다.
수정하고 저장합니다.
html 파일 제작
사람들에게 설치를 유도할 링크를 제작해야 합니다.
public 파일로 들어가서 html 파일을 하나 생성합니다.
저는 이름을 test.html 로 지었습니다.
<a href="itms-services://?action=download-manifest&url=(manifest.plist 웹상 경로)"> 설치 </a>
이런 식으로 입력하고 저장하면 됩니다.
다 저장했으면 다시
firebase depoly
명령어로 재배포합니다.
이제 아까 올렸던 test.html 파일이 제대로 올라갔는지 확인합니다.
이 url 을 사파리로 엽니다.
누르면 설치가 되는 것을 알 수 있습니다.
설치되지 않는 경우
눌러도 앱은 깔리는 것 같은데... 왠지 아이콘이 흑백이고 실행할 수 없는 경우가 있을 것입니다.
두 가지 경우 중 하나에 해당합니다.
1. 기기가 아카이브하기 전에 제대로 등록되지 않았음
2. manifest.plist 에 적혀 있는 ipa 파일 경로로 들어가도, 앱이 없음
이 모든 것이 귀찮은 당신에게 권하는 Firebase Distribution
기기 등록도 귀찮고... 일일히 https 서버 알아봐서 manifest 수정하고 올리고 뭐 하는 작업이
저는 귀찮았습니다.
딱 한번 해봤으면 됐지, 굳이 이렇게 까지 하고싶진 않았습니다.
이후 Firebase 앱 배포가 굉장히 쓸만하다는 점을 알게 되었습니다.
https://firebase.google.com/docs/app-distribution?hl=ko
결론은 애드훅 쓰지 말고 파이어베이스 앱 배포를 해보자는 겁니다.
아래 포스트로 이어집니다.
https://sesang06.tistory.com/182
반응형'iOS' 카테고리의 다른 글
XcodeGen을 활용해 xcodeproj의 마지 컨플릭트에서 벗어나라 (0) 2020.04.26 애드훅보다 간편하다! 테스트플라이트보다 빠르다! 파이어베이스 iOS 배포를 활용해 보자 (4) 2020.04.26 [잡설] 빌드 속도 단축에 대한 고민 (0) 2020.04.25 느려터진 iOS 빌드 속도로 고통받는 당신에게, 카르타고를 권장합니다. (0) 2020.04.24 SWIFT 질문들 (0) 2020.03.14