IT_Programming/Objective-C · Swift · iOS

iOS Application 앱 스토어 등록 절차 / Dropbox를 이용하여 서버없이 iOS 테스트용 앱 배포하기(Ad-Hoc distribution)

JJun ™ 2015. 6. 26. 17:28



 출처: http://passion.dothome.co.kr/?p=53

        http://blog.saltfactory.net/ios/distribute-ios-app-using-with-dropbox-without-server.html

        http://seapy.com/1975

        http://seungbinkim.blogspot.kr/2014/03/xcode-iphone.html




폰에서 앱을 실행하려면, 개발자 센터에서 몇 가지를 해줘야 한다
사이트의 오른쪽에 Certificates, Identifiers... 눌러서 이동하면 왼쪽에 메뉴가 있는데 이 순서대로 작업을 하면 된다.


1. Certificates
2. Identifiers
3. Devices
4. Provisioning Profiles


1. Certificates : 인증서 만들기


맥 → 키체인 접근  인증 기관에서 인증서 요청  파일로 저장

Certificates 에서 Add  Development 선택  맥에서 저장한 파일 선택  생성  다운로드  실행
개발과 배포 인증서를 모두 만들고 실행하면
키체인 접근에 개인키와 공개키, 개발 인증서, 배포 인증서가 표시된다.




2. Identifiers : 앱 아이디 만들기


Identifiers에서 add  App ID Description에 적당한 이름을 넣고 → App ID Prefix에 Value를 선택해야 하는데 
이것은 키체인에 등록된 인증서를 보면 10자리 문자와 일치하는 것을 골라야 한다.

배포인증서에 적혀있는 10자리를 선택한다. → App ID Suffix에는 Wildcard App ID를 선택하고 *(아스타리스크)만 작성.
와일드카드를 사용할 경우 장단점이 있는데 이건 나중에 다시 다루기로 하고, 다음 단계 진행한다.




3. Devices : 디바이스 등록


앱을 실행할 단말기를 등록하는 과정으로써 최초 한 번만 하면 된다.

맥에 폰을 USB로 연결하고 Xcode의 Organizer에 가면 연결된 디바이스가 표시되는데
여기서 Identifier를 사이트에 Add 해줘야 한다.




4. Provisioning Profiles : 권한 설정


Provisioning Profiles에서 Add  App ID를 2번에서 만든 아이디를 지정  Certificates에서는 1번에서 만든 인증서를 선택 
 Devices는 3번에서 등록한 디바이스 선택  생성  다운로드  실행
 Xcode Organizer 에서 연결된 디바이스를 선택하면 생성한 프로비저닝 프로파일이 표시된다.
Status 컬럼에 Valid profile이라고 나온다.




정리하면, 앱은 프로비저닝 프로파일이 필요하고 프로비저닝 프로파일은 인증서와 앱 아이디가 필요하다
인증서가 만료되거나 앱 아이디가 삭제되면 프로비저닝이 Invalid하고 (valid signing identity not found) 이렇게 되면 앱을 폰에 올릴 수 없다








iOS Application 앱 스토어 등록 절차



개요

본 문서는 iOS용으로 개발된 앱을 앱 스토어에 등록 및 배포하기 위한 절차를 정리한 문서이다.
본문의 내용은 Mac OSX 10.8.4, Xcode 4.6 환경을 기준으로 설명한다.

STEP 1. 애플 개발자 계정 생성

  1. 웹 브라우저에서 애플 개발자 센터로 이동 ( https://developer.apple.com )


  2. 페이지 하단의 iOS Developer Program 메뉴 클릭

  3. 구매 페이지에서 (Enroll Now) $99/year 버튼을 클릭

  4. 애플 계정 로그인 또는 애플 계정 생성

    기존에 보유한 애플 계정 ID가 있을 경우 Continue 버튼을, 계정이 없을 경우에는 Create Apple ID 버는을 눌러서
    신규 생성을 하고 다시 처음부터 절차를 진행한다.

  5. 가입 유형 선택

    기업 회원, 개인 회원 중 자신이 해당하는 항목을 선택한다. 기업 회원의 경우 DUNS Number 가 필요하다.
    DUNS Number에 대한 자세한 설명은 아래 링크를 참조한다.

    http://www.dnbasia.com/kr/korean/duns_no/duns_01.asp

    DUNS Number에 대하여 간단히 설명하자면 전세계 기업을 관리하는 차원에서 발급하는 코드이며
    애플은 이 코드을 등록하게 한다. 등록이 안되어 있으면 다음 단계 진행이 불가능하며 등록비용이 발생한다.

  6. 입력 정보 최종 확인

    이 단계에서는 지금까지 입력한 정보를 최종 확인 하는 단계로 화면 상단을 보면 Enrollment 시리얼 번호가 존재한다.
    이 번호를 잘 기억해 둔다.

    위의 단계까지 진행하면 아래와 같이 Apple 담당자의 등록 확인 절차까지 진행이 되며, 등록 확인 메일이 발송되게 된다.


    등록 확인 메일까지 발송 된 후에는 유선으로 확인 전화가 오는데, 전화를 받지 못한 경우에는 
    아래와 같이 부재중 연락 메일이 오게 된다.

    위의 메일에 있는 전화번호로 전화를 하면 담당자와 연결되며,
    이 때 담당자에게 개발자 이름, 전화번호, 상담번호 등을 전달해주면 빠른 처리가 가능하다.

  7. 등록 완료

    6번 과정까지 완료가 되면 아래와 같이 등록 완료 메일이 전송된다.

    라이센스 등록 및 계정 구매를 위하여 위의 메일 내에 있는 Program License Agreement 링크를 클릭한다.

    라이선스에 동의를 누르고 승인 버튼을 누르면 이제 개발자 계정으로 판매 계정을 구매할 수 있는 상태로 진행된다.

  8. 계정 구매

    실제 계정을 구매하는 단계로 바로 7번 과정까지 완료하게 되면 아래와 같은 화면이 표시된다.

    위의 화면에서 Add to Cart 버튼을 누르면 장바구니로 바로 이동한다.

    결제를 누르고 아래와 같이 각각 정보를 입력한다.

    배송 주소와 결제 정보를 모두 입력하고 이용 약관에 동의한다.

    결제 정보 입력시 카드는 국내, 해외 결제 카드 모두 사용이 가능한다.

    결제가 완료되면 아래와 같이 완료 메시지가 출력과 함께 결제 완료 메일이 전송된다.


  9. 계정 활성화

    계정 구매가 완료되고 실제 개발자 계정에 적용되는 동안 개발자 센터에서는 아래와 같이 표시된다.

    실제 결제가 적용되고 개발자 등록이 완료되면 아래와 같이 Activation Code 메일이 도착한다.

    위 메일에서 Activation Code 링크를 클릭하면 인증 페이지로 이동한다.

    위 화면에서 메일로 전달 받은 Activation Code를 입력하고 Activate 버튼을 누르면 모든 절차가 완료된다.

    주의할점은 이 Activation Code 를 입력하는 web browser 는 safari 아니면 Google Chrome 두가지만 된다.
    firefox 또는 InternetExplorer 는 제대로 과정이 진행되지 않는다.



STEP 2. 개발 인증서 생성 및 설치

이 작업은 최초 한 번만 해 두고, 설치한 인증서를 맥에서 p12 파일로 내보내기 하여 백업 및 관리하면 다음부터는 할 필요가 없다.

p12 파일은 협력사와 공동개발 또는 팀원과의 공동 개발 시 공유하여 사용한다.

  1. CertKey를 발급받기위한 요청Key의 생성

    Mac os X 에서 Utility 에 있는 키체인 접근 프로그램을 실행한다.

    키체인 접근을 실행하면 아래와 같은 창이 표시된다.

    상단 메뉴바에서 [키체인 접근]->[환경 설정]을 누르거나 단축키 ‘Cmd+,’을 누르면 다음과 같이 환경설정 창이 뜨고,
    인증서 탭을 누르면 아래와 같은 화면이 표시된다. 아래 화면에서 OCSP와 CRL을 둘 다 끔으로 변경한다.

    환경설정 창을 닫고 [키체인 접근]->[인증서 지원]->[인증 기관에서 인증서 요청…] 메뉴를 클릭한다.

    요청을 위한 인증서 정보를 입력한다. E-mail과 이름 정도를 입력하면 된다. 옵션은 「디스크에 저장됨」을 선택한다.

    만들어진 요청용 인증서(CSR)를 저장할 경로를 지정한다.

    만들게 될 인증서에 대한 선택사항을 지정한다. 키 크기는 2048 바이트, 알고리즘은 RSA로 지정 후 계속 버튼을 누른다.

    인증서가 만들어졌다는 안내 문구가 표시되고 파인더에서 보기 버튼을 누르면 해당 경로로 이동하여 생성된 파일을 표시해준다.


  2. 개발 인증서 발급

    웹 브라우저(Safari 권장)에서 애플 개발자 센터( https://developer.apple.com )로 이동한 후 상단 메뉴의 멤버 센터를 눌러 로그인한다. 로그인을 하면 첫 화면이 아래와 같이 표시되고 여기서 「Certificates, Identifiers & Profiles」 메뉴를 클릭한다.

    위의 메뉴를 클릭하면 아래와 같은 페이지로 이동하게 된다.

    붉은 색 박스로 표시된 각 메뉴에 대한 설명은 다음과 같다.

    • Certificates : 어플리케이션 개발에 사용할 인증서입 목록
    • Identifiers : App ID 라고도 하며, Xcode 에서 프로젝트 생성시 지정하는 Company Identifier(bunble id 또는 Application id) 와 관련이 있다.

    • Devices : 만들어진 Application 의 테스트를 진행할 Device를 등록하는 메뉴. 기기의 UUID를 등록하면 되는데 xcode 또는 iTunes를 사용해서 UUID를 알아낸다음 해당되는 기기를 등록해주면 된다. 본 문서에서는 별도로 다루지는 않는다.

    • Provisioning Profiles : 만들어진 application 과 기기를 연관지어 테스트를 진행하기 위한 Profile 을 관리하는 메뉴.

    개발 인증서 생성을 위해 위의 메뉴 중 「Certificates」를 클릭하면 아래와 같은 화면이 표시된다.

    처음 개발자 프로그램 라이센스를 이용하는 경우는 위와 같이 오른쪽 영역에 아무것도 표시되지 않는다. 
    기존에 개발자 계정을 사용한 기록이 있다면 expire 된 인증서가 표시되는 경우가 있다.

    오른쪽 상단의 「+」 눌러 인증서 제작 화면으로 넘어간다.

    화면 하단을 보면 「Worldwid Develper Relations Certificate Authority」 라는 링크가 보이는데
    해당 링크를 눌러 WWDR 인증서 파일을 다운로드한다.

    다운 받은 WWDR 인증서 파일(AppleWWDRCA.cer)을 더블 클릭하면 인증서 추가창이 다음과 같이 뜨게 된다.
    여기서 키체인 옵션을 아래와 같이 system 으로 설정하게 되면 시스템 전체에서 편리하게 사용할 수 있으나
    상황에 따라 달리 설정해도 무관하다.

    추가 버튼을 눌러 WWDR 인증서를 키체인에 추가한다.

    WWDR 인증서 파일(AppleWWDRCA.cer)은 이 전에 다운 받아 키체인에 등록이 완료되어 있으면 다시 할 필요는 없다.

    이제는 실제 앱 스토어 배포시 이용될 인증서를 생성할 차례이다.

    인증서 제작 화면에서는 크게 두가지 섹션으로 나누어져 있는데 각 부분에 대한 설명은 다음과 같다.

    • Development : 개발용 인증서를 생성

      • iOS App Development
        앱 개발시 사용되는 인증서. 실제 앱스토어 배포용으로는 사용할 수 없다.

      • Apple Push Notification service SSL (Sandbox)
        푸시 서비스 개발용 인증서. 개발할 앱이 푸시 기능을 사용할 때 선택하는 옵션으로 역시 실제 배포용으로는 사용할 수 없다.

    • Distribution : 앱 스토어 배포용 인증서를 생성

      • App Store and Ad Hoc
        일반적인 앱 스토어 배포용 인증서.

      • Apple Push Notification service SSL (Production)
        푸시 서비스용 인증서. 배포할 앱이 푸시 기능을 사용할 때 선택하는 옵션.

      • Pass Type ID Certificate
        Passbook 앱 관련 인증서

    위의 화면에서 일반적인 경우라면 「App Store and Ad Hoc」 항목을 선택하고, 만약 푸시 서비스를 제공하는 앱이라면 「Apple Push Notification service SSL (Production)」 항목을 선택한 후 「Continue」 버튼을 눌러 다음 단계로 진행한다.

    다음 단계로 진행을 하면 아래와 같이 이전 단계의 「키체인 접근」에서 만들었던 요청용 인증서 파일, 즉 CSR 파일을 생성하라는 안내문이 표시된다. 이전 단계에서 생성했으므로 「Continue」 버튼을 클릭하여 다음 단계로 넘어간다.

    다음 단계에서는 아래와 같이 CSR 파일을 업로드 할 수 있는 버튼이 표시된다. 버튼을 클릭하여 CSR 파일을 업로드한다.

    CSR 파일을 업로드 한 후 「Continue」 버튼을 클릭하면 개발용 인증서 신청이 완료되고 인증서 목록에 나타나게 된다.

    정상적으로 인증서가 생성이 되었다면 인증서 목록에서 「Download」와「Revoke」 버튼이 표시된다. 여기서 「Revoke」 버튼은 인증서를 삭제하는 버튼으로 앱이 배포된 상태에서 이 버튼을 눌러 인증서를 삭제할 경우 앱 실행 자체가 안 되게 되므로 주의하도록 한다.

    「Download」 버튼을 눌러 인증서 파일(distribution_identity.cer)을 다운로드하고 WWDR 인증서와 마찬가지로 해당 파일을 더블 클릭하여 키체인에 등록한다.


STEP 3. Identifier ( App ID ) 생성

Identifier 메뉴는 앱을 식별할 수 있는 고유값을 생성하는 메뉴로서 Identifier 메뉴를 클릭하면 아래와 같이 현재 계정에서 생성된 모든 App ID들의 목록을 표시 및 새로운 App ID를 생성할 수 있는 페이지로 이동한다.

위의 화면에서 우측 상단에 있는 「+」 버튼을 눌러 새로은 App ID 생성 화면으로 이동한다.

각 항목별 설명은 다음과 같다.

  • App ID Description

    해당 App ID에 대한 간략한 설명을 작성하는 란으로서 @, &, *, ‘, ” 같은 특수기호는 사용 할 수 없다.

  • App ID Prefix애플에서 개발자 계정별로 부여하는 Team ID로서 계정별로 고유한 값이 부여되고 임의로 수정할 수 없다.
      아래의 App ID Suffix를 입력하면 자동으로 앞에 붙어서 하나의 App ID를 생성하기 때문에 앱을 식별하는 식별자로서의
      역할을 하게된다.

  • App ID Suffix

    • Explict App ID
      일반적으로 App ID를 생성할 때 사용하는 옵션으로, JAVA의 패키지명 생성법과 유사하게 문자열을 입력하면 된다.
      ‘_’ 와 ‘*’ 문자는 입력할 수 없다.

    • Wildcard App ID
      위의 Explict App ID 옵션과는 다르게 * 문자를 입력할 수 있으나 이 옵션은 앱 스토어 등록용으로는 사용 될 수 없다. 이유는 이 옵션을 선택하고 com.domainname.* 와 같이 App ID를 생성할 수 있는데 이는 개발시 Xcode에서 설정하는 번들 식별자 중 앞에 com.domainnam. 라는 문자열만 있으면 어떤 앱이라도 이 App ID를 사용할 수 있게 해주는 옵션이기 때문에 앱 스토어에서 앱을 식별하는 기능을 할 수 없기 때문이다. 그렇기 때문에 이 옵션은 주로 앱 스토어 배포 전 내부에서 테스트용으로 사용되거나 엔터프라이즈 계정에서 인하우스 배포용으로 사용된다.

  • App Service
    해당 App ID를 사용하는 앱에서 서비스 할 기능들을 선택하는 옵션으로 해당하는 내용만 체크하면 된다.
    기본적으로 Game Center 와 In-App Purchase 가 선택되어 있는데 이는 App ID 생성 후 변경이 가능하므로
    지금 이 화면에서는 무시한다.

    • Data Protection
      앱에서 생성한 파일을 기기의 디스크에 저장할 때 보안 기능 사용 여부를 선택하는 옵션이다. 
      금융권 앱과 같이 보안에 민감한 앱이 아니라면 선택하지 않는다.

      • Complete Protection
        말 그대로 어떠한 상황에서도 파일을 보호

      • Protected Unless Open
        파일을 Open 할 때까지 보호

      • Protected Until First User Authentication
        첫 사용자 인증이 완료될 때까지 보호

    • Game Center
      주로 게임 앱들이 선택하는 옵션으로 다른 사용자와 게임 정보 교환을 하는 게임 네트워크 서비스를 이용할 경우 선택한다. 기본적으로 선택이 되어 있고 일반적인 앱에서는 사용하지 않는 옵션이기 때문에 App ID 생성 후 변경 페이지로 이동하여 체크 해제한다.

    • iCloud
      앱에서 생성한 사용자의 데이터를 다른 iOS 및 Mac OS X 장치의 앱과 iCloud 서비스를 통하여 공유가 가능하도록 서비스를 제공할 경우 선택한다.

    • In-App Purchase
      앱 내 결제 서비스를 이용할 경우 선택한다. 기본적으로 선택이 되어 있다.
      이 옵션 역시 App ID 생성 후 변경이 가능하다.

    • Inter-App Audio
      iOS7이 발표된 후로 추가된 옵션으로 자세한 내용은 확인이 필요함

    • Passbook
      앱에서 Passbook과 관련한 서비스를 제공할 경우 선택

    • Push Notification
      앱에서 푸시 서비스를 이용할 경우 해당 옵션을 선택


해당하는 내용을 기입하고 서비스 옵션들을 선택한 후 아래의 「Continue」 버튼을 클릭하면
아래와 같이 App ID 정보 확인 페이지로 이동한다.

화면 하단의 「Submit」 App ID가 생성되고 App ID 목록 화면에서 표시된다.

여기서 생성한 App ID는 Xcode의 프로젝트에서 타겟 설정에서 Bundle Identifier 값으로 그대로 사용이되며 반드시 일치하여야 한다.


STEP 4. 프로비저닝 프로파일 생성

좌측 메뉴에서 「Provisioning Profiles」를 클릭ㄱ한다. 등록된 프로파일이 없다면 아래와 같이 목록에 아무것도 없고,
등록된 프로파일이 있다면 해당 리스트들이 표시된다.

위의 화면에서 우측 상단에 있는 「+」 버튼을 눌러 프로파일을 생성한다.

앱 스토어 등록용 프로파일을 생성할 것이므로 위에 붉은색 박스로 표시한 것과 같이 Distribution의 「App Store」 옵션을 선택한 후 「Countinue」 버튼을 클릭한다. 다음 페이지에서는 이전 단계에서 생성한 App ID를 선택하는 화면이다. App ID가 여러개 있다면 여러개 중 해당하는 것을 선택하면 된다.

App ID를 선택 후 「Countinue」 버튼을 누르면 다음과 같이 배포시 사용될 개발 인증서를 선택하는 화면으로 이동하게 된다.

STEP 2 에서 생성한 개발 인증서를 선택한 후 「Countinue」 을 누르면 아래와 같이 프로파일 생성의 마지막 단계인 프로파일 이름 지정 화면으로 넘어가게 된다.

붉은 색 박스로 표시한 부분에 프로파일의 이름을 지정한다. 프로파일 이름은 자유롭게 입력이 가능하나 @, &, *, ‘, “ 와 같은 특수문자는 입력이 불가능하다. 프로파일 이름을 지정하였으면 아래 「Generate」를 눌러 프로파일 생성을 완료한다.

프로파일 생성이 완료되면 프로파일 목록 화면으로 이동하게 되며 아래와 같이 목록에 표시된다.

목록에서 생성한 프로파일의 Status가 Active 상태이면 정상적으로 생성이 되어 사용이 가능한 상태이고, Expired 상태라면 만료된 상태, Invalid 라면 유효하지 않은 상태이므로 프로파일 사용이 불가능한다.

생성한 프로파일의 사용법은 프로파일을 클릭해보면 아래와 같이 프로파일의 상세 내용과 메뉴가 표시된다.

위의 화면에서 다운로드 버튼을 눌러 프로파일을 다운로드 하거나 Xcode의 Organizer를 사용하여 동기화 하여 사용중인 맥 기기에 import 시키면 된다. Xcode 상에서 import 방법은 Xcode의 Organizer를 실행시킨 후 Organizer 창의 상단에 Device를 선택한 후 좌측 메뉴에서 Provisioning Profiles 항목을 선택한다.

그러면 해당 맥 기기에 설치된 프로비저닝 프로파일의 목록이 표시된다. 오른쪽 아래의 Refresh 버튼을 눌러 프로파일을 동기화 시키면 위에서 생성한 프로파일이 자동으로 Import 된다. Refresh 버튼을 누르면 계정 정보를 입력하여야 하는데 이때 프로파일 생성시 로그인 한 애플 개발자 계정 정보를 입력하면 된다.


STEP 5. 앱 소개 데이터 준비

iTunes Artwork 이미지

  • 앱 스토어 노출용 이미지로서 앱의 아이콘과 동일한 이미지로 하는 것이 일반적이다.
  • 사이즈 : 512 x 512 픽셀
  • 모서리에 라운드 처리를 하면 안됨(앱 스토어 규정이 그렇게 정의 되어 있음)
  • Shine 또는 Gloss 효과 사용불가
  • 알파 투명도를 사용하지 말 것 => 투명처리도 사용 불가


앱 명칭

  • 앱 스토어에서 표시될 앱 이름
  • 실제 앱 설치 후 기기에서 표시되는 이름과 별도로 앱 스토어에서만 표시되는 이름
  • 영문 11자 이내일 경우 아이폰에 표시될 때 11자 모두 출력
    • 예시)iRemoteView -> iRemoteView 모두 표시됨
  • 영문 12자 이상일 경우 아이폰에 표시될 때 말 줄임 된 채로 출력
    • 예시)iRemoteViewer -> iRemo…iewer로 줄여진 채로 표시됨
  • 글자 수 제약은 폰트에 따라 달라질 수 있으므로 되도록 줄이는 것이 좋음


앱 소개문

  • 앱 스토어에서 표시될 앱 소개 Text
  • 최대 4000자 입력 가능


앱 스크린 샷 5장

  • 앱 스토어 소개 페이지에 표시될 스크린 샷 이미지
  • 상단의 상태바를 포함하지 않는 것이 좋음
  • 반드시 앱을 캡쳐한 이미지일 필요는 없으나 사이즈는 기기별 사이즈를 맞추어야 함
    • 아이폰 앱일 경우 스크린 샷 사이즈
      • 아이폰 4, 4S용 : 640×960 pixel
      • 아이폰 5용 : 640×1136 pixel
    • 아이패드 전용 앱일 경우 스크린 샷 사이즈
      • 세로 : 1536×2048 pixel
      • 가로 : 2048×1536 pixel
    • 유니버셜 앱일 경우
      • 위의 모든 이미지를 준비하면 됨
  • 반드시 5장을 준비해야 할 필요는 없음 (최대가 5장)
  • 아이폰 용 앱일 경우 아이폰 5용 이미지를 준비하지 않으면 리젝 사유가 됨



STEP 6. iTunes Connect 에서 앱 신규 등록

웹 브라우저(사파리 권장)에서 애플 개발자 센터로 이동 후 Member Center 페이지로 이동한다. 멤버 센터 화면에서 iTunes Connect 메뉴를 클릭한다.

메뉴를 클릭하면 아래와 같이 iTunes Connect에 로그인 하는 화면으로 이동하게 된다.
애플 개발자 계정 정보를 입력한 후 로그인한다.

로그인 후 iTunes Connect 메뉴 화면에서 Manage Your Apps 메뉴를 클릭한다.

그러면 아래와 같이 앱 관리 화면으로 이동하게 된다. 아직 등록한 앱이 없다면 아래와 같은 화면이 표시되며 앱 스토어에서 판매중인 앱이 있다면 해당 앱들이 아래 화면에서 표시되게 된다.

위의 화면에서 Add New App을 누르면 새로운 앱을 등록하기 위한 절차가 시작된다.

1) Company Name

  • Company Name : 아이튠즈 및 앱 스토어에서 판매자 이름을 입력


2) App Information

  • Default Language : 앱의 기본 언어 선택. 로컬라이징을 하지 않은 국가에 기본적으로 보이는 언어
  • App Name : 앱 스토어에 표시될 앱 이름
  • SKU Number : 개발자가 관리하는 관리코드, 본인이 관리하는 어플의 유일코드. 자신이 관리하는 다른 앱들과 중복되지 않도록 유일한 값을 입력
  • Bundle ID : App ID 선택. 배포할 앱의 App ID를 선택하면 된다.


3) App Price

  • Availability Date : 앱 스토어에의 공개 희망일 지정
  • Price Tier : 앱 가격 지정
  • Discount for Educational Institutions : 교육기관 대상으로 할인 옵션.


4) App Information

  • Version Number : 앱의 버전을 지정. Xcode에서 지정한 것과 동일한 값을 입력하면 됨
  • Copyright : 카피라이트 정보를 영문으로 입력
  • Primary Category : 앱에 해당하는 메인 카테고리를 지정.
  • Secondary Category (Optional) : 옵션 사항으로 부가 카테고리를 지정


등급 지정을 위한 옵션으로 일반적으로는 모두 None을 선택한다. 앱에 포함되어 있는 콘텐츠의 성향을 선택하는 것으로 여기서 선택한 옵션에 따라 앱 스토어 연령 등급 등이 결정되고 결정된 등급에 따라 특정 국가에서는 판매가 되지 않을 수 있다. 또한 선택한 내용과 실제의 앱의 내용이 다를 경우 리젝 사유가 될 수 있다.

  • Cartoon or Fantasy Violence : 만화 또는 비 현실적인 폭력성을 포함하고 있음
  • Realistic Violence : 현실적인 폭력성을 포함하고 있음
  • Sexual Content or Nudity : 성적인 내용이나 노출을 포함하고 있음
  • Profanity or Crude Humor : 욕설이나 원색적인 유머를 포함하고 있음
  • Alcohol, Tobacco, or Drug Use or References : 술, 담배 또는 약물 사용에 관한 내용을 포함하고 있음
  • Mature/Suggestive Themes : 불건전한 내용을 포함하고 있음
  • Simulated Gambling : 도박성 콘텐츠를 포함하고 있음
  • Horror/Fear Themes : 호러, 공포스러운 내용을 포함하고 있음
  • Prolonged Graphic or Sadistic Realistic Violence : 가학적인 폭력물을 포함하고 있음
  • Graphic Sexual Content and Nudity : 성적인 또는 노출 이미지 콘텐츠를 포함하고 있음
  • Made for Kids (Optional) : 유아용으로 만들어 짐 (선택사항)


  • Description : 앱 소개 내용을 입력 (4000자 제한)
  • Keywords : 앱과 관련된 키워드를 입력. 콤마로 구분하여 여러개의 키워드를 입력 할 수 있다.
  • Support URL : 앱 서포트를 위한 웹 사이트 주소를 입력
  • Marketing URL (Optional) : 앱 마케팅을 위한 웹 사이트 주소를 입력 (선택사항)
  • Privacy Policy URL (Optional) : 앱의 개인 정보 취급 정책 웹 사이트 주소를 입력 (선택사항)


  • Contact Information : 앱 관련 담당자 정보 입력
    • First Name : 이름
    • Last Name : 성
    • Email Address : 이메일 주소
    • Phone Number : 국가번호를 포함 한 전화번호
  • Review Notes (Optional) : 앱 심사 시 추가적으로 전달할 정보가 있으면 입력
  • Demo Account Information (Optional)
       : 앱에서 로그인이 필요한 서비스가 있다면 리뷰어가 테스트하기 위해 사용할 계정 정보를 입력


  • Large App Icon
    • 앱 아이콘과 동일한 이미지로 사이즈는 1024×1024 픽셀
    • 최소 72 DPI 이상
    • 앱 아이콘을 단순히 확대한 이미지는 사용불가
    • 사용가능한 파일 포멧 : jpeg, jpg, tif, tiff, png
    • 모서리 라운드 처리한 이미지는 사용불가
  • 3.5-Inch Retina Display Screenshots
    • 앱 스토어 소개 페이지에 표시될 아이폰4, 아이폰4S용 이미지들을 업로드
    • 업로드 가능한 이미지 사이즈 : 960×640, 960×600, 640×960, 640×920
    • 최소 72 DPI 이상
    • 사용 가능한 파일 포멧 : jpg, png
  • 4-Inch Retina Display Screen
    • 앱 스토어 소개 페이지에 표시될 아이폰5용 이미지들을 업로드
    • 업로드 가능한 이미지 사이즈 : 1136×640, 1136×600, 640×1136, 640×1096
    • 최소 72 DPI 이상
    • 사용 가능한 파일 포멧 : jpg, png
  • iPad Screenshots
    • 앱 스토어 소개 페이지에 표시될 아이패드용 이미지들을 업로드
    • 업로드 가능한 이미지 사이즈 : 1024×768, 1024×748, 768×1024, 768×1004, 2048×1536, 2048×1496, 1536×2048, 1536×2008
    • 최소 72 DPI 이상
    • 사용 가능한 파일 포멧 : jpeg, jpg, tif, tiff, png
  • Routing App Coverage File (Optional)
    • 애플 지도에서 길찾기 시 연동되는 앱들을 보여줄 때 사용될 지리정보 파일(geojson) 업로드


5) Confirm

위의 4번 과정까지 끝마치게 되면 위와 같이 앱 정보와 현재 앱 등록진행 상태를 확인 할 수 있다. 현재 상태는 Prepare for Upload 상태로 바이너리 업로드를 위해서는 Waiting for Upload 상태로 만들어야 한다. 우선 위의 화면에서 View Details를 클릭하면 아래와 같은 페이지로 이동하게 된다.

여기서는 앱의 세부정보를 확인 할 수 있는데, 여기서 우측 상단에 있는 Ready to Upload Binary 버튼을 클릭한다.

다음 화면에서 앱에 로그인이나 인증 과정이 포함된 경우는 Yes를, 그렇지 않으면 No를 선택한다. Yes를 선택한 경우 다음 단계에서 추가적으로 입력할 정보가 많으므로 생략한다. 옵션을 선택 후 Save 버튼을 클릭하게 되면 아래와 같이 바이너리 업로드 관련 안내문 페이지로 이동하게 된다.

여기서 Continue를 눌러 앱의 정보를 확인하면 Waiting for Upload 단계까지 진행한 것을 확인 할 수 있으며
다음 단계에서 바이너리 빌드 후 업로드 할 수 있다.


STEP 7. 앱 스토어 배포용 바이너리 빌드 및 업로드

Xcode 이용

1) 배포용 빌드

Xcode에서 빌드 스킴을 iOS Device로 선택 후 상단 메뉴에서 Product -> Archive 메뉴를 클릭한다.
메뉴를 클릭하면 타겟 설정에 따라 자동으로 배포용으로 빌드가 진행되고 Organizer 가 아래와 같이 실행된다.


2) Organizer에서 앱 스토어로 바이너리 업로드

위의 Organizer 화면에서 지금 빌드한 아카이브를 선택한 후 붉은색 박스로 표시한 Validate 버튼을 클릭한다.

iTunes Connect 의 유저명과 패스워드 입력후 Next 버튼을 클릭한다.

다음단계 부터는 이미지 캡쳐가 힘든 상황이므로 텍스트 설명으로 대체한다.

1) 「Identify」에 해당되는 것을 선택하고 「Next」를 클릭. Validation의 성공이 표시되면 「Finish」 버튼을 클릭.
그러면, 「Organizer」의 「Status」에 「Passed Validation」라고 표시가 된다.

2) 계속해서 「Organizer」에서, 「Submit」 버튼을 클릭.

3) 앞에서 한 것과 마찬가지로 iTunes Connect 의 유저명 과 패스워드를 확인하고 「Next」를 클릭

4) 좀 전과 똑같이, 「Identify」에 해당하는 것을 선택하고 「Next」를 클릭.

5) 업로드가 완료가 되었다면, 「Finish」버튼을 클릭. 「Organizer」의 다이알로그의 「Status」가 「Submitted」가 된 것을 확인.

6) iTunes Connect에 로그인 해서, 해당하는 어플리케이션의 「Status」가 「Waiting for Review」라고 표시 되어 있는 것을 확인.

※ 심사가 완료되어 공개 되어도 좋은 단계일 경우에는 「Ready for Sale」로 변경됨.

7) 등록한 이메일 주소로 「Your app status is Waiting For Review」라고 하는 메일이 오는 것을 확인.

ApplicationLoader 이용

1) 빌드 스킴 변경

2) Build Configuration 을 Release로 변경

3) 빌드 후 Product 폴더로 이동

4) 바이너리 업로드를 위해 압축

5) 압축 파일을 Application Loader로 Open

6) 업로드 할 Application 선택

7) 앱 정보 확인

8) 업로드 할 파일의 위치를 확인

9) 바이너리 업로드

10) 바이너리 업로드 확인

11) 바이너리 업로드 완료

※ Application Loader 을 처음 사용하였을때, 아이튠스 커넥션에 로그인하고 사용하라는 에러 메세지가 표시된다. 이 때 로그인을 했어도 계속 로그인을 하라는 메세지가 나타날 수 있는데, 이것은 아이튠즈 커넥트에서 Ready to Upload Binary를 진행하지 않았기 때문에 나타나는 에러 메세지이다. Application Loader를 사용하기 위해서는 Ready to Upload Binary를 먼저 진행해야 한다.

STEP 8. 리뷰 상태 확인

위의 바이너리 업로드까지 완료가 되면 iTunes Connect에서 리뷰 상태를 확인 할 수 있다.
리뷰 상태에 대한 내용은 다음과 같다.

  • Waiting for Review : 테스트 대기상태
  • In Review : 애플에서 어플 테스트 중
  • Ready for sale : 앱스토어에 판매 대기 및 판매중
  • Reject : 판매 보류, 이후는 어플리케이션 수정후 등록신청 다시 해야함. version은 수정하지 않음

리뷰 프로세스

Prepare for Upload ?> Waiting For Upload ?> Upload Received ?> Waiting For Review ?> In Review ?> Processing for App Store ?> Ready for Sale

참고자료








Dropbox를 이용하여 서버없이 iOS 테스트용 앱 배포하기(Ad-Hoc distribution)



서론

iOS 개발을 하게 되면 개발자들은 보통 자신의 맥에 아이폰을 USB로 연결해서 디바이스 디버깅을 한다.
하지만 개발이 완료후 베타 테스트를 진행할 때는 사내 사원들이나 가까운 지인에서 설치하여 테스트를 진행하는 경우가 많다.

Apple에서는 임의의 테스트 사용자가 앱을 테스트를 진행할 수 있게 provisioning file에 디바이스를 등록하여 등록된 기계에는 앱 스토어에 앱을 설치하지 않고도 테스트할 수 있게 허용하고 있다. 좀 더 편리하게 각각 디바이스를 USB로 연결해서 설치하는 것이 아니라 웹을 통해서 간단하게 다운로드 할 수 있는 테스트용 앱 배포 기능을 제공하고 있는데 이것이 바로 Ad-Hoc distribution 이다. Ad-Hoc에 관한 자세한 설명은 Apple의 공식 문서를 참조하길 바란다.

이 포스팅에서는 iOS 앱을 개발 후 Ad-Hoc으로 앱을 배포하는 방법을 설명한다.


iOS 앱 만들기

먼저, 간단한 앱을 만들어보자. Ad-Hoc 배포하는 방법만 설명할 것이기 때문에
간단하게 Empty Application 템플릿으로 앱을 생성하였다. 앱을 생성한 정보는 다음과 같다.

  • Product Name : SFAdHocDemo
  • Organization Name : SungKwang Song
  • Company Identifier : net.saltfactory
  • Bundle Identifier : net.saltfactory.tutorial
  • Class Prefix : SF
  • Devices : iPhone

위의 정보중에서 다른 정보는 별로 중요하지 않지만 코드인증을 위해서 Bundle Identifier는 매우 중요하다.
이것은 앱의 유일한 식별자일 뿐만 아니라 코드인증과 개발자인증에 매우 중요한 정보가 된다.


Provisioning Profile 만들기

프로덕트를 만들면 필요한 것이 바로 provisioning profile이다. 이것은 코드 인증을 담당하고 디바이스 인증을 담당하고 있는 앱 개발에 중요한 프로파일이다. Apple 개발자 사이트에 로그인을 하여 iOS provisioning profile을 하나 만든다. 이전 포스팅 중에 Node.js로 APN 서버를 만들때 Apple 개발자 사이트에서 iOS provisioning profile을 만드는 방법을 설명했는데 다음 링크를 참고하면 최근 iOS provisioning profile을 만드는데 도움이 될 것이다. (http://blog.saltfactory.net/215)

우리가 필요한 것은 Ad-Hoc의 provisioning profile을 만드는 것이다. Apple 개발자 사이트에서 Provisioning Profiles 중에서 distribution을 클릭한다. 이미 만들어진 앱스토어 등록하거나 ad-hoc 테스트를 진행한 적이 있으면 provisioning profile들이 보일 것이고 그렇지 않으면 비어 있을 것이다.

+ 버튼을 클릭하자. 우리는 Ad-Hoc 배포를 위한 provisioning profile을 만들 것이기 때문에 Ad Hoc을 선택하고 Continue를 선택한다.

다음은 provisioning profile에 인증될 앱을 선택하는 화면이 나오는데 해당하는 App ID를 선택한다.

위 사진에서 만약 App ID가 나타나지 않거나 다른 App ID를 등록해서 선택하고 싶을 경우는 사이트 왼쪽 메뉴에서 Identifiers 카테고리 아래의 App IDs를 선택해서 새롭게 등록하면 된다. App ID를 선택하고 난 다음 개발자의 Certificates를 선택한다.

유일한 앱 ID와 개발자 Certificates 선택 다음에는 디바이스 인증을 위해서 등록된 디바이스를 선택한다. provisioning profile을 가지고 인증 확인을 할 때, App ID, Certificates, Devices를 검사하게 되기 때문이다. Ad-Hoc 으로 배포해서 설치될 디바이스를 선택한다. 만약에 배포하고 싶은데 디바이스가 등록되어 있지 않으면 추가 등록하고 싶은 디바이스의 UUID를 알아서 새롭게 등록한 후 선택하여 추가한다.

마지막으로 provisioning profile의 이름을 입력한다. 우리는 saltfactory_tutorial_ad-hoc 으로 저장하였다.

generate를 선택하면 distribution provisioning profile이 만들어 질 것이다.



Build Scheme and Archive

이렇게 만든 provisioning profile을 다운로드 받은 후 Xcode에 추가해서 새로생성한 프로덕트의 code sign에 매칭한다.

Xcode에서 빌드 스키마 창을 연다. option 키를 누르고 Run 버튼을 누른다. 그리고 archive를 선택한다.
Scheme는 우리가 생성한 프로덕트 이름이고 Destination은 iOS Device로 수정한다(기본은 simulator로 되어 있다)

Archive 버튼을 누른다.
만약에 provisioning profile 정보와 code sign의 정보가 일치되지 않을 경우 다음과 같은 에러를 만나게 된다.

provisioning profile과 code sign이 이상없이 인증이 완료되면 다음과 같이 Organizer 창이 나타난다.

만약 앱을 앱 스토어에 등록하기 위해서는 Validate... 버튼을 선택하면되고 Ad-Hoc 배포를 하기 위해서는 Distribute 버튼을 선택한다. 우리는 Ad-Hoc 배포를 할 것이기 때문에 Save for Enterprise or Ad Hoc Development 를 선택하고 Next를 누른다.

distribution method

우리가 앞에서 만든 provisioning profile인 saltfactory_tutorial_ad-hoc을 선택하고 Export를 하도록 한다.


export files

위 과정이 마치고 나면 우리는 이제 Ad-Hoc으로 앱을 설치할 수 있는 준비를 모두 마친것이다. export를 누르면 다음과 같은 화면이 나온다. 이 것은 OTA를 설정하는 화면으로 실제 앱의 속성을 저장하고 있는 .plist 파일과 실제 앱 바이너리 파일인 .ipa 파일이 만들어지고 서버에 이 두 파일을 저장하게 된다.

여기서 Application URL은 앱의 정보를 저장하고 있는 파일인데 서버에 두 파일을 저장한 이후, 아이폰에서 모바일 safari 브라우저에 http://dev.saltfactory.net/ota/SFAdHocDemo.plist 링크를 입력하면 자동으로 앱이 다운로드 되어 설치하게 된다.



Dropbox 디렉토리 사용

하지만 우리는 서버가 없다. 서버가 없기 때문에 우리는 dropbox를 이용할 것이다.
dropbox를 맥에 설치하거내 dropbox웹을 열어보자. dropbox에서 홈 디렉토리 밑에 ota라는 디렉토리를 만들어보자.

맥에 설치했다면 다음과 같이 finder에서 dropbox 디렉토리 안에 ota 디렉토리가 동기화 되어 생성된 것을 확인할 수 있다.

ota directory에 SFAdHocDemo.plist 이름을 가진 파일과 SFAdHocDemo.ipa 파일을 추가한다. 

그리고 추가한 파일에 오른쪽 마우스를 클릭해서 Share Dropbox Link를 선택하여 dropbox의 URL을 복사한다.

그리고 다시 Xcode의 Oraginizer로 돌아가보자.
그리고 복사한 Dropbox URL을 다음과 같이 Application URL에 붙여넣기를 한다.

https://www.dropbox.com/s/y852vcepgtaopvu/SFAdHocDemo.ipa


하지만 이것은 dropbox의 페이지 URL 이다.
우리는 파일을 바로 다운로드 받을 수 있게 해야하기 때문에 다음과 같이 URL을 변경한다.

https://www.dropbox.com/s/y852vcepgtaopvu/SFAdHocDemo.ipa

to

https://dl.dropboxusercontent.com/s/y852vcepgtaopvu/SFAdHocDemo.ipa

그리고 파일을 dropbox의 디렉토리 중에 우리가 만든 ota 디렉토리 안으로 저장하게 한다. 


그러면 다음과 같이 dropbox의 생성한 ota 디렉토리 안에 SFAdHocDemo.plist와 SFAdHocDemo.ipa 두개의 파일이 저장된 것을 확인할 수 있다.


마지막으로 OTA를 사용할 수 있게 HTML 파일을 ota 디렉토리에 하나 추가해서 만들자. 파일 이름은download.html로 정한다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
        <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0"/>
    <meta name="apple-mobile-web-app-capable" content="yes" />
  <title>OTA Ad-Hoc 설치 페이지</title>
        <style>
                li {margin: 10px;}
        </style>
</head>
<body>
<p>
이 페이지는 비공개 앱 OTA 테스트(Closed OTA Test) 페이지 입니다.
<font color="red">디바이스 권한의 없으면 OTA를 설치할 수 없습니다.  </font>
<br/>
문의 사항은 <a href="mailto:saltfactory@gmail.com">saltfactory@gmail.com</a> 으로 메일을 보내어 주십시오.
</p>
  <ul>
        <li><a href="itms-services://?action=download-manifest&url=https://dl.dropboxusercontent.com/s/sx5z0mewbcbooic/SFAdHocDemo.plist">SFAdHocDemo OTA 설치</a></li>
  </ul>
  </ul>
</body> </html


이제 아이폰에서 safari로 download.html 링크를 열어보자. download.html에서 오른쪽 마우스로 Share Dropbox Link를 선택하거나 dropbox 웹 사이트에서 download.html 파일을 선택해서 share를 한 뒤 링크를 아이폰으로 문자나 메일로 보낼 수 있다.

메세지로 받은 링크를 열어보면 다음과 같이 열린다.





이렇게 설치할 수 있는 download.html 이 열리게 되는데 SFAdHocDemo.ipa를 다운받을 수 있는 링크를 눌러보자.
아래와 같이 다운받을 앱이 나타나고 install을 선택하면 아이폰에 설치가 진행된다.


결론

아이폰도 이젠 더이상 단일 디바이스가 아니다. iPhone3gs, iPhone4, iPhone5, iPhone5s 등 여러개의 실제 디바이스에 테스트를 진행해봐야한다. 이렇게 디바이스를 모두 USB를 연결하여 개발을 한다면 개발자는 많은 시간적 비용을 소비하게 된다. 그리고 앱을 개발 후 마켓에 등록하기 전에 실제 사용하면서 디버깅할 수 있는 베타 테스트가 필요한데, Apple은 Ad-Hoc distribution이라는 것을 사용해서 앱 스토어 업로드하기 전에 개발 폰으로 등록된 아이폰에 USB 연결없이 원격에서 설치할 수 있는 기능을 제공한다. 하지만 이렇게 원격지에서 앱을 설치하기 위해서는 웹 서버가 필요하다. 뿐만 아니라 iOS 7.1 부터는 Ad-Hoc distribution으로 OTA 설치를 하기 위해서는 https만 지원을 한다. 이전에는 http 도 지원했기에 특별히 보안서비스를 구입하지 않아도 사용 가능했지만 https를 사요하는 순간 서버에 ssl을 적용해야하기 때문에 많은 비용이 발생된다. Dropbox는 이런 서버기능을 대신해줄 수 있는 좋은 클라우드 서비스이다. 원래 Dropbox는 파일을 서버에 올려서 스마트 폰이나 PC등 다양한 디바이스에 파일을 자동으로 동기화하는 클라우드 서비스인데 Dropbox가 https로 동작을 하고 있고, html 파일 등 다양한 파일을 업로드할 수 있고 share 기능으로 외부에서 URL을 사용할 수 있기 때문에 Ad-Hoc distiribution을 사용해서 설치할 수 있는 서버 환경을 만들어줄 수 있는 것이다. 이제 더이상 복작하고 많은 비용이 발생하는 서버를 구축하거나 구입하지 않고 단순히 Dropbox에 가입하는 것만으로 Ad-Hoc distiribution을 구현해 낼 수 있다.



참고

  1. http://stackoverflow.com/questions/20276907/enterprise-app-deployment-doesnt-work-on-ios-7-1
  2. https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html


연구원 소개









개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기



개발중인 앱을 쉽게 배포하자


iOS 앱을 개발하면서 하루에도 몇번씩 변경되는 앱을 팀원,
테스터에게 배포하는것은 귀찮은 작업입니다.

개발단계에서 iOS 기기에 앱을 설치해주는 방법은 3가지가 있습니다.


1. USB로 연결후 Xcode 에서 빌드하여 설치

2. USB로 연결후 iPhone Conficuration Utility를 이용해 설치

3. 각 사용자의 기기에서 웹사이트에 접속해 설치


이외에도 AdHoc 기능을 이용해 배포하는것이 있다고 알고 있지만 AdHoc 배포를 위해서는 개인개발자 계정이 아닌
좀더 비싼 기업용 개발자 프로그램을 구매해야 합니다. 본 포스트에서는 개인개발자 계정인 경우를 기준으로 설명합니다.

본 포스트에서 설명하고자 하는것은 3번째 방법인 웹을 이용한 배포 및 설치입니다.



내부 배포용 앱 실행파일(ipa) 만들기


웹을 이용한 배포를 위해서는 앱 실행 파일인 ipa 확장자를 가진 파일이 필요합니다.
본인이 개발자가 아닌경우 지인이나 개발자로부터 ipa파일을 받게 되는데 이런 상황인 경우 아래쪽의 "ipa 파일을 이용해
웹에서 앱을 설치하기"로 바로 넘어가시면 됩니다.


1. ipa 파일을 만들기 위해서 Xcode 에서 Scheme를 시뮬레이터가 아닌 Device 로 선택합니다. 이때 기기는 연결되어 있지 않아도 됩니다.



2. Build Setting 에서 'Code Signing Identity' 의 Release 에 설정된 프로파일을 배포용 프로파일이 아닌 개발용 프로파일로 변경합니다.


추후 앱스토어 배포할때는 다시 배포용 프로파일로 변경해야 합니다.

주의 : 개발용 프로파일에 설정된 UDID를 가진 기기에서만 실행할 수 있으므로 배포하고자 하는 대상의 UDID가 개발용 프로파일에 포함되어 있는지 확인해야 합니다.(Xcode를 이용해 자동으로 개발 프로파일이 관리되는 경우 Xcode > Orgarnizer 에서 대상 기기를 USB로 연결후 'Use Develop' 버튼을 클릭하고 개발용 프로파일 새로고침을 하면 개발 프로파일에  해당 기기의 UDID가 등록 됩니다.)


3. 메뉴 > Product > Archive 를 클릭하여 배포용으로 앱을 빌드합니다.


4. 빌드완료후 실행되는 Archives 하단 빌드 목록중 방금 생성한 항목을 선택하고 오른쪽 상단의 "Distribute..." 버튼을 클릭합니다.


5. "Save for Enterprise or Ad-Hoc Deployment" 를 선택하고 "Next" 버튼을 클릭합니다.


6. Code Signing Identity 에서는 앞서 2번에서 설정한 개발용 프로파일을 선택하고 "Next" 버튼을 클릭합니다.

7. ipa 파일을 저장할 위치를 물어보는 팝업이 노출되면 적절한 폴더를 선택하고 "Save" 버튼을 클릭합니다.

저장이 완료되어도 별도의 메시지는 없습니다. 

순식간에 저장되므로 지정한 위치에 ipa 파일이 생성되어 있다면 ipa 파일의 생성은 완료된것입니다.



IPA 파일을 이용해 웹에서 앱을 설치하기

ipa 파일을 가지고 있다면 이를 이용해 다른 사용자들이 웹에서 쉽게 설치할 수 있습니다.
물론 개발자 프로파일에 등록된 기기만 설치 가능합니다.


Beta Builder for iOS

웹을 이용한 설치를 위해서는 Beta Builder for iOS 프로그램이 필요한데 이 프로그램은 Mac App Store 에서 $1.99에 다운로드 받을수 있습니다.
유료라서 부담이 된다면 개발자가 직접 공개한 소스코드를 GitHub에서 다운로드 받아 Xcode로 빌드해 사용해도 됩니다.
(iOS 개발을 한다면 유용한 툴임에 분명하기에 유료로 구매하시는것을 제안합니다. 커피반잔보다 못한 가격입니다.)

1. Beta Builder 를 실행후 "Archive IPA File" 항목의 "Choose IPA..." 버튼을 클릭하거나 생성된 ipa 파일을 드래그하여 입력창으로 드랍합니다.


ipa 파일을 선택하면 Bundle Identifier 등의 정보는 모두 자동으로 입력됩니다.


2. "Full Web Deployment Path" 에는 해당 앱을 배포할 웹사이트 주소를 입력합니다.

드랍박스 이용하기

배포할때 Dropbox를 이용하는것을 추천하는데 이유는 별도로 웹서버에 배포할 필요없기 때문입니다.
(2013. 2. 7 추가 : Google Drive 도 비슷한 기능을 제공하기 시작했습니다. 공유 옵션중 Public Share 를 사용하면 됩니다.
Dropbox 와는 달리 아무 폴더나 설정가능합니다.)

Dropbox의 Public 폴더는 항상 외부에 오픈되어 있어 누구나 접속가능한 폴더입니다.

ipa 파일을 Dropbox/Public/diffweather 폴더에 저장했을 경우 "Full Web Deploymemt Path"는 http://dl.dropbox.com/u/xxxx/diffweather/
이와 같은 경로가 됩니다. (여기서 xxxx는 사용자마다의 고유의 값입니다.)

고유의 값은 Dropbox/Public 하위의 파일(폴더아님)을 선택하고 마우스 오른쪽 버튼을 누른 후 "Copy Public Link"를 클릭하면
클립보드에 저장된 값으로 알 수 있습니다.


Dropbox 에 업로드된 데이터의 동기화가 모두 종료되었다면 이제 다른 기기에서 웹으로 접속해 앱을 설치 할 수 있습니다.

주의 : 기기에서 접속하는 설치 URL에는 "Full Web Deploymemt Path"에서 입력한 주소뒤에 "/index.html"을 붙여주어야 합니다.
위의 경우 http://dl.dropbox.com/u/xxxx/diffweather/index.html 을 사용자에게 메시지나 메일을 통해 알려주면 됩니다.


3. 사파리 브라우저에  URL을 입력하면 다음과 같은 화면이 보이는데 여기서 iOS 4.0 이상 사용자는 위쪽의 파란 박스, 이하 사용자는 아래쪽의 파란박스를 클릭하여 설치를 진행하면 됩니다. 설치가 진행되면 바탕화면에서 앱이 다운로드 되는것을 확인할 수 있습니다.

    






URL 주소 줄이기

사용자에게 http://dl.dropbox.com/u/xxxx/diffweather/index.html 와 같은 긴 주소를 알려주면 입력하기도 힘들고
오타가 날 수 있으므로 URL 주소를 줄여주는 서비스를 이용해보도록 하겠습니다.

https://bitly.com/ 서비스에 접속후 배포할 웹주소를 입력후 "Shorten" 버튼을 클릭합니다.
(ex http://dl.dropbox.com/u/xxxx/diffweather/index.html)

줄여진 주소도 사실 복잡한 문자열로 이루어져 있어 기억하기 쉽지 않습니다.

줄여진 주소를 임의로 수정하려면 bit.ly 서비스에 무료로 가입해야 합니다. 무료로 가입한경우 다음과 같이 줄여진 URL을 얻을수 있습니다.


 


좀더 쉬운 방법

Beta Builder for iOS를 이용해 파일을 생성하고 Dropbox에 올리는 작업이 번거롭다면 이 작업을 대행해주는 서비스를 이용하는것도 좋습니다.

TestFlight 같은경우 생성된 ipa 파일을 업로드하면 자동으로 주소도 만들어 주고 다른 데이터도 제공하는데 자세한 내용은 홈페이지를 참고 하시기 바랍니다.


참고자료

- "7 Tools for Over-the-Air iOS Beta Testing"

- "Beta Builder for iOS 공식 홈페이지"