티스토리 뷰

OS 앱을 만들다 보면 베타 테스트도 더 전에 시연을 위해 다른 사람들에게도 앱을 배포해야 할 때가 있다


이때 아래와 같이 4가지 방법 정도가 있을 것 같다

(앱스토어에 베타로 올리는것은 제외했다.)

  1. 테스트 기기를 맥과 USB 연결 및 빌드
  2. 애드혹 OTA(Over The Air) 배포 ( UDID 수집 후 배포 )
  3. TestFlight 를 통한 배포
  4. Enterprise 계정을 통한 in-house 배포

각각 장단점을 살펴보면 아래와 같다.
  1. 테스트 기기를 맥과 USB 연결 및 빌드
    • 장점
      • 별다른 설정을 할 필요가 없다. 기기 받아서 개발기기 활성화 시키고 XCode 에서 자동으로 관리하는 wild provisiong 으로 바로 앱이 기기속으로 들어간다
    • 단점
      • 기기가 많을 경우 굉장히 번거롭다. 앱을 조금 수정하고 배포할 때 기기 대수만큼 USB 연결을 맺어야 한다


  2. 애드혹 배포 ( UDID 수집 후 배포 )
    • 장점
    • 테스트 기기를 가진 소유자가 UDID 만 알려주면 OTA 배포가 가능하므로 깔끔하다
    • 단점
      • 테스트 기기를 가진 사람이 UDID 를 넘겨줘야 한다.


  3. TestFlight 를 통한 배포
    • 장점
      • 테스트기기 소유자한테 UDID 같은걸 받지 않아도 된다.
      • 배포 후 앱 테스트 관련 통계를 보기가 좋다
    • 단점
      • 테스트 기기 소유자 수 만큼의 애플계정을 만들어줘야 한다.
      • 같이 일을 하는 팀이 고정적이라면 좋겠지만, 클라이언트가 프로젝트마다 바뀌어서는 이것 역시 그 때마다 번거롭다


  4. Enterprise 계정을 통한 in-house 배포
    • 장점
      • 모든게 장점이다. 끝판왕이다.
    • 단점
      • 1년에 36만원정도(?) 하는 Enterprise 계정이 필요하다
      • 사업자 관련 정보를 애플에 넘겨야 하는 등 처음에 좀 번거롭다



프리랜서로 개발 작업을 할 떄는 가장 간편한게 2번 이었다.

클라이언트에게 UDID 얻는 방법을 알려준다.


이후에 내가 작업해야 할 것들은 아래와 같다




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 링크 만들기
      1. 복사한 링크 텍스트를 텍스트 에디터에 복붙 한다.
        예 > https://www.dropbox.com/s/xbrrsqruajf27p0/apnsguide.ipa?dl=0

      2. 에디터를 통해서 www.dropbox.com 을 아래 텍스트로 치환하고 url 텍스트 끝의 ?dl=0 를 삭제한다.
        dl.dropboxusercontent.com
        예> https://dl.dropboxusercontent.com/s/xbrrsqruajf27p0/apnsguide.ipa

      3. 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 기기에서 열어보자

  • 웹페이지가 나타나고, '앱 다운받기' 링크를 클릭하자


  • 홈 버튼을 눌러 메인화면으로 나와보면 앱이 설치되고 있는 것을 확인할 수 있다.



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함