티스토리 뷰
OS 앱을 만들다 보면 베타 테스트도 더 전에 시연을 위해 다른 사람들에게도 앱을 배포해야 할 때가 있다
이때 아래와 같이 4가지 방법 정도가 있을 것 같다
(앱스토어에 베타로 올리는것은 제외했다.)
- 테스트 기기를 맥과 USB 연결 및 빌드
- 애드혹 OTA(Over The Air) 배포 ( UDID 수집 후 배포 )
- TestFlight 를 통한 배포
- Enterprise 계정을 통한 in-house 배포
각각 장단점을 살펴보면 아래와 같다.
- 테스트 기기를 맥과 USB 연결 및 빌드
- 장점
- 별다른 설정을 할 필요가 없다. 기기 받아서 개발기기 활성화 시키고 XCode 에서 자동으로 관리하는 wild provisiong 으로 바로 앱이 기기속으로 들어간다
- 단점
- 기기가 많을 경우 굉장히 번거롭다. 앱을 조금 수정하고 배포할 때 기기 대수만큼 USB 연결을 맺어야 한다
- 애드혹 배포 ( UDID 수집 후 배포 )
- 장점
- 테스트 기기를 가진 소유자가 UDID 만 알려주면 OTA 배포가 가능하므로 깔끔하다
- 단점
- 테스트 기기를 가진 사람이 UDID 를 넘겨줘야 한다.
- TestFlight 를 통한 배포
- 장점
- 테스트기기 소유자한테 UDID 같은걸 받지 않아도 된다.
- 배포 후 앱 테스트 관련 통계를 보기가 좋다
- 단점
- 테스트 기기 소유자 수 만큼의 애플계정을 만들어줘야 한다.
- 같이 일을 하는 팀이 고정적이라면 좋겠지만, 클라이언트가 프로젝트마다 바뀌어서는 이것 역시 그 때마다 번거롭다
- Enterprise 계정을 통한 in-house 배포
- 장점
- 모든게 장점이다. 끝판왕이다.
- 단점
- 1년에 36만원정도(?) 하는 Enterprise 계정이 필요하다
- 사업자 관련 정보를 애플에 넘겨야 하는 등 처음에 좀 번거롭다
프리랜서로 개발 작업을 할 떄는 가장 간편한게 2번 이었다.
이후에 내가 작업해야 할 것들은 아래와 같다
1. 개발자 계정에 기기 UDID 등록
애플 개발자 계정 내 iOS 기기 관리 페이지로 접근한다.
접근 후에 Device 를 추가한다
- 기기를 등록하고 나면 아래와 같이 내 기기에 대한 정보가 나타난다.
2. 배포용 프로비저닝 프로파일 생성 ( 배포용 인증서는 이미 만들었다고 가정 - 없다면 Certificates -> Productions 에서 만들자)
- 이어서 Distribution용 프로비저닝 프로파일을 추가한다.
- 앱 아이디를 선택
- Distribution 인증서를 선택한다.
- 테스트할 기기를 선택한다.
- 프로비저닝 이름을 작성한다.
- 만들어진 프로비저닝 프로파일 다운로드 및 실행
3. XCode 설정 ( 프로비저닝 프로파일을 실행 후 XCode 는 완전 종료 후 재시작 해주자. 그래야 갱신이 된다.)
- 프로젝트를 열고 Code Sign 과 provisioning profile 을 설정한다.
3. IPA 파일의 생성
- 프로젝트를 Archive 하자. (시뮬레이터로 기기가 설정되어있으면 Archive 메뉴가 활성화되지 않으니 iOS Device 또는 연결된 기기를 선택하자)
- 아카이브가 완료되면 Export 한다.
- Save for Ad Hoc Deployment 를 선택
- 여기서 개발자 계정을 연결한다. 만약 없다면 Login 창이 나타날 것이다.
- 로그인 창에서 로그인을 마치고 나서 Command + ` 키를 눌러서 XCode 내의 형제창들간 포커스를 이동하면 다시 이 화면으로 돌아올 수 있다.
- ipa 파일 이름을 지정하고 저장한다.
4. Dropbox 를 통한 https 서버 사용 및 plist 파일, 앱 다운로드 웹페이지 생성
- 만든 ipa 를 드랍박스 내에 자신이 원하는 경로로 저장을 한다.
- 파일에 마우스 우클릭 후 'dropbox 링크 공유' 를 클릭한다.
- dropbox 파일의 링크를 누구나 https 를 통해 접근할 수 있도록 만들수 있는 방법이 있는데 이를 이용해서 우리는 앱을 배포할 것이다.
- 애플에서 어느날 부터 갑자기 https 가 아니면 앱 배포를 할 수 없도록 막아버려서 인증된 https 서버가 필요해 졌는데 dropbox가 이를 지원해 준다.
- 아래의 Dropbox public 링크 만들기 를 참고해서 링크를 만든 뒤에 텍스트 편집기에 저장해 두자
- Dropbox public 링크 만들기
- 복사한 링크 텍스트를 텍스트 에디터에 복붙 한다.
예 > https://www.dropbox.com/s/xbrrsqruajf27p0/apnsguide.ipa?dl=0 - 에디터를 통해서 www.dropbox.com 을 아래 텍스트로 치환하고 url 텍스트 끝의 ?dl=0 를 삭제한다.
dl.dropboxusercontent.com
예> https://dl.dropboxusercontent.com/s/xbrrsqruajf27p0/apnsguide.ipa - url을 만든 후 웹브라우저에 복붙해봐서 파일이 잘 다운받아지는지 테스트 해본다.
https://dl.dropboxusercontent.com/s/xbrrsqruajf27p0/apnsguide.ipa
- plist 파일의 생성
- ad-hoc 배포를 위해서는 plist 라는 파일이 필요한데 XCode 6 이전에는 알아서 만들어주던걸 이제는 XCode가 만들어주지 않는다.
- 하는 수 없이 텍스트 편집기를 통해 만든다 (필자는 Sublime Text 2 를 사용했다.)
plist 템플릿
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>[INSERT URL HERE]</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>[INSERT BUNDLE ID HERE]</string>
<key>bundle-version</key>
<string>[INSERT VERSION HERE]</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>[INSERT APP TITLE HERE]</string>
</dict>
</dict>
</array>
</dict>
</plist>
- url 부분에 아까 만든 url 를 넣도록 하자
- 이어서 bundle identifier를 삽입한다
- 버전이랑 타이틀을 대략 입력하고 완성된 모습은 아래와 같다.
- 만든 텍스트를 확장자 plist 파일로 저장한다. 이 때도 Dropbox 에 저장한다.
- 위에서 dropbox public link 를 만들었던걸 똑같이 한다.
- 다운로드 웹페이지를 만들어야 하는데 초 간단하게 html로 만들어 보자
html 템플릿
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title></title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0"/>
<link rel="stylesheet" href=""/>
</head>
<body>
<a href="itms-services://?action=download-manifest&url=[ INSERT HERE ]">앱 다운받기</a>
</body>
</html>
- url 입력 부분에 아까 만든 plist 의 링크를 적는다.
- 완성되면 아래와 같다.
- 이걸 또 Dropbox 링크 만들기를 한다.
- 이쯤 되면 슬슬 dl.dropboxusercontent.com 이 외워질 것이다. ;;;;;;;;;
- 이걸 또 Dropbox 링크 만들기를 한다.
5. 앱의 설치
끝나간다. 아까 최종으로 만들어진 html 의 주소를 iOS 기기에서 열어보자
웹페이지가 나타나고, '앱 다운받기' 링크를 클릭하자
홈 버튼을 눌러 메인화면으로 나와보면 앱이 설치되고 있는 것을 확인할 수 있다.
출처 : [팁03] iOS 앱 내부 배포 (ad-hoc , OTA ) 가이드 (Dropbox 활용)
(http://devlecture.tistory.com/m/entry/%ED%8C%8103-iOS-%EC%95%B1-%EB%82%B4%EB%B6%80-%EB%B0%B0%ED%8F%AC-adhoc-OTA-%EA%B0%80%EC%9D%B4%EB%93%9C-Dropbox-%ED%99%9C%EC%9A%A9)
(http://devlecture.tistory.com/m/entry/%ED%8C%8103-iOS-%EC%95%B1-%EB%82%B4%EB%B6%80-%EB%B0%B0%ED%8F%AC-adhoc-OTA-%EA%B0%80%EC%9D%B4%EB%93%9C-Dropbox-%ED%99%9C%EC%9A%A9)