본문 바로가기
Server&OS/AppStore&Mac OS

iOS Provisioning Portal, Distribution iPhone

by 백룡화검 2011. 6. 23.
Distribution

iOS Provisioning Portal의 배포영여은 인하우스나 애드혹 배포를 통해 전달을 위해 iPhone과 iPod touch 어플리케이션을 전송하는 방법을 배운다. 오직 팀원만이 배포를 위한 준비와 전송을 수행할 수 있다.
앱 스토어에 어플리케이션을 배포하는 방법은 App Store tab을 살펴보라.

Obtaining your iOS Distribution Certificate

iOS어플리케이션을 배포하기위해 팀원은 애플에 iOS 배포 인증서를 생성해야한다. 오직 팀의 팀원만이 이 인증서를 생성할 수 있고 이 인증서가 어플리케이션 전송을 가능토록한다.

- Generating a Certificate Signing Request

iOS Distribution Certificate를 요청하려면 먼저 Mac OS X Leopard에서 키체인 접근을 사용해 Certificate Signing Request (CSR)를 생성해야 한다. CSR생성은 키체인 접근을 통해 iOS 배포 지정자를 얻기위해 public과 private키를 생성한다. private키는 기본적으로 로킨 키체인에 저장되어 키체인 접근 어플리케이션에서 Keys카테고리에서 볼 수 있다. CSR을 생성하려면 다음을 수행한다.
1. 어플리케이션 폴더에서 유틸리티 폴더를 열고 키체인 접근을 실행한다.
2. 환경설정 메뉴에서 Online Certificate Status Protocol (OSCP)와 Certificate Revocation List (CRL)을 끔으로 설정한다.
3. 키체인 접근 -> 인증 지원 -> 인증기관에서 인증서 요청하기 를 선택한다. 일러두기: 이 처리 중에 키체인의 private키가 하이라이트되면 인증서 요청은 프로비져닝 포널에서 허용되지 않는다. 인증기관에서 인증서 요청하기를 선택하며 인증기관에서 <Private Key>와의 인증 요청하기를 선택해서는 안된다.
4. 사용자 이메일 필드에서는 자신의 이메일 주소를 입력한다. 이메일 주소는 iOS Developer로 등록한 정보와 같게 해야 한다.
5. 일반 이름 필드는 회사/조직/부분 이름을 입력한다. 이 이름은 iOS Developer에서 등록한 것으
로 해야 한다.
6. CA 이메일 주소는 필요치 않다.
7. 디스크로 저장을 선택하고 자신이 키페어 정보 지정을 선택한 후 "Continue"를 클릭한다.
8. 자신의 키페어 정보 저장 이 선택되어 있으므로 파일이름을 지정하고 "저장"를 클릭한다. 2048 비트 키사이즈와 RSA알고리즘을 선택한 후 "계속하기"를 클릭한다.
9. 인증기관은 데스크탑에서 CSR파일을 생성한다.

- Submitting a Certificate Signing Request for Approval

CSR을 생성한 후 iOS Provisioning Portal에 로긴하고 "Certificates" -> "Distribution" 으로 이동한 후 "Add Certificate"버튼을 클릭한다.
2. 업로드 파일 버튼을 클릭하여 CSR을 선택하고 "Submit"를 클릭한다. 만약 키 사이즈가 2048비트가 아니면 포탈은 CSR을 거부한다.
3. iOS Distribution Certificate를 승인한다.

- Downloading and Installing iOS Distribution Certificates

1. 포탈의 "Certificates" -> "Distribution" 섹션에서 WWDR Intermediate Certificate 링크를 클릭하고 "Saved Linked File to Downloads"를 선택해 인증서 다운로드를 시작한다. 다운로드 후 키체인 접근을 실행하고 설치한다.
2. Provisioning Portal의 같은 곳에서 iOS Distribution Certificate의 이름을 클릭해 다운로드 한다.
3. 지역 장치에서 다운로드한 .cer파일을 더블클릭해 키체인 접근을 실행하고 인증서를 설치한다.
- Saving your Private Key and Transferring to Other Systems

이 상황에서 자신의 private key를 저장하는 것은 다중 맥에서 어플리케이션을 개발하거나 시스템 OS를 재설치하는 경우를 대비해 매우 중요하다. private key가 없으면 Xcode에서 바이너리를 서명할 수 없으며 그래서 앱스토어에 어플리케이션을 업로드할 수 없거나 다른 애플 장치에서 실행할 수 없게된다.
CSR 이 생성되면 키체인 접근 어플리케이션은 로긴 키체인에 private key를 생성한다. 이 private key는 사용자 계정에 연결되며 OS 재설치와 같은 것에 의해 재생성될 수 없다. 만약 다중 시스템에서 개발을 수행할 것이라면 그 장치에서 import하여 작업을 수행할 수 있다.
1. private key를 엑스포트하고 인증서를 안전하게 보관하려면 키체인 접근 어플리케이션을 실행하고 "키" 카테고리를 선택한다.
2. 활성화된 private key를 선택한 후 파일 메뉴에서 "아이템 내보내기"를 통해 Personal Information Exchange (.p12) 파일 형식을 저장한다.
3. 암호 생성을 통해 이 키를 다른 컴퓨터에서 사용할 수 있게 된다.
4. 이제 .p12파일을 시스템 사이에서 전송할 수 있다. .p13파일을 더블클릭한다. 위에 입력한 암호를 입력해 불러올 수 있다.

Create and download your iOS Distribution Provisioning Profile for App Store Distribution

앱 스토어를 통한 배포를 위해 어플리케이션을 빌드핟록 App Store Distribution Provisioning Profile을 생성하고 다운로드 해야 한다. 이들은 Development Provisioning Profiles와는 다르고 App Store Distribution Provisioning profile만이 허용된다.
일러두기: 앱스토어 프로비져닝 프로필은 배포 빌트된 어플리케이션이 애플장치에서 설치되도록 허용하지 않는다. 장치에서 배포 준비된 어플리케이션을 설치하려면 Ad Hoc프로비져닝 프로필을 생성해야 한다.
1. 팀 에이전트는 프로피져닝 포털의 프로비져닝 섹션으로 이동해 Distribution 탭을 선택한다.
2. App Store 라디오 버튼을 선택한다.
3. Distribution 프로비져닝 프로필 이름을 입력한다.
4. iOS 배포 인증서가 생성되어있는지 확인한다.
5. 단일 배포 프로비져닝 프로필과 어플리케이션생성을 위한 와일드카드 App ID를 선택한다.
6. Submit를 클릭한다.
7. 다운로드할 .mobileprovision파일을 의 Distribution 프로비져닝 프로필이름을 클릭한다.
8. .mobileprovision을 Xcode에 드래그하거나 iTunes 아이콘으로 드래그해 설치한다.
Creating and Downloading a Distribution Provisioning Profile for Ad Hoc Distribution

Ad Hoc배포를 위하여 Xcode 에서 어플리케이션을 빌드하려면 Ad Hoc 배포 프로비져닝 프로필을 생성하고 다운로드해야 한다.
1. 팀 에이젼트는 프로비져닝 포털에서 "Provisioning" 섹션으로 이동한다.
2. Ad Hoc 라디오 버튼을 선택한다.
3. Ad Hoc 배포 프로비져닝 프로필의 이름을 입력한다.
4. iOS 배포 인증서가 생성되고 보여지고 있는지 확인한다.
5. 배포할 어플리케이션의 App ID를선택한다.
6. 어플리케이션을 실행할 100개 까지의 UDID를 선택한다.
7. "Submit"를 클릭한다.
8. .mobileprovision파일을 다운로드하기위해 Distribution Provisioning Profile의 이름을 클릭한다.
9. .mobileprovision을 Xcode나 iTunes에 드래그하여 설치한다.
Building your Application with Xcode for Distribution

1. Xcode를 실행하고 프로젝트를 연다.
2. 만약 이것을 수행하지 않았다면 Distribution Provisioning Profile을 Xcode나 iTunes아이콘에 드래그한다. (또는 "~/Library/MobileDevice/Provisioning Profiles" 디렉토리로 드래그한다.)
3. Xcode 프로젝트를 열고 프로젝트의 Info 패널의 설정 페인의 "Release"를 복재한다.  이 설정의 이름을 Distribution이라고 명명한다.
4. Target Info 윈도우에서 빌드탭을 Configuration에서 Distribution으로 변경한다.
5. Target Info 윈도우에서 Build페인으로간다. "Code Signing Identity"필드아래의 "Any iOS Device"팝업을 클릭하고 iOS Distribution Certificate/Provisioning Profile 페어를 선택한 후 설치한다. iOS Distribution 인증서는 강조된다. 아래이 예에서 "iOS Distribution: Example Corp, Inc"는 배포 인증서이고 "My App Store Distribution Provisioning Profile"은 이 것과 연계된 .mobileprovision파일이다.
일 러두기: iOS Distribution 인증서를 위한 private키가 없으면 iOS Distribution Certificate/Provisioning Profile페어를 선택할 수 없어 다음과 같이 보이게 된다. 이를 위해  iOS Distribution인증서를 임포트하여 정상작동하도록 한다.
6. Target Info윈도우에서의 속성 페인에서 App ID의 번들 지정자를 입력한다. 만약 지정자 필드에서 App ID의 번들 지정자 포션을 입력해야한다. 예를 들면 App ID가 A1B2C3D4E5.com.domainname.applicationname 이라면 com.domainname.applicationname 를 입력한다. 만약 App ID에 와일드카드 아스테리스크를 사용했다면 이를 선택할 이름으로 대체하도록한다.
여기에 예시 App ID와 Xcode의 지정자 필드에 입력할 이름이 있다.
  • Example App ID: A1B2C3D4E5.com.domainname.applicationnameIdentifier to enter in Xcode: com.domainname.applicationname
  • Example App ID: A1B2C3D4E5.com.domainname.*Identifier to enter in Xcode: com.domainname.<name_of_application_or_suite>
  • Example App ID: A1B2C3D4E5.*Identifier to enter in Xcode: <full_reverse_dns_company_and_application_or_suite_name>
7. 프로젝트 윈도우에서 오버뷰 팝업으로부터 Distribution Active Configuration을 선택하고 원하는 장치로 Active SDK를 선택한다.
App Store 배포를 위해서 단계 12까지 건너뛴다. Ad Hoc 배포에는 다음도 수행한다.
8. 파일 메뉴에서 New File -> iPhone OS -> Code Signing -> Entitlements를 선택한다.
9. "Entitlements.plist"의 이름을 입력하고 "Finish"를 선택한다. 이를 통해 프로젝트 내의 기본 엔타이틀먼트 복사본이 생성된다.
10. 새로운 Entitlements.plist를 선택하고 "get-task-allow"프로퍼티를 체크해제한다. Entitlements.plist를 저장한다.
11. Target을 선택하고 빌드 세팅 인스펙터를 연다. "Code Signing Entitlements"빌드 세팅에서 새로운 Entitlements.plist파일을 확장자 포함해 입력한다. 여기에는 경로를 입력할 필요가 없이 프로젝트의 탑레벨에 있으면 된다.
12. "Build"를 클릭한다. (일러두기: 바이너리는 반드시 플래턴드이며 57x57픽셀의 스퀘어 이미지 아이콘을 포함해야한다. 아이콘은 아이폰이나 아이판 터치 홈 스크린에서 보여지게 된다.)
13. "Products" 서브폴더내의 앱을 선택한 후 액션 팝업에서 "Reveal in Finder"를 선택한다.
14. 파인더의 콤프레스 옵션으로 어플리케이션을 포함하여 .zip 파일을 생성한다. 이 파일은 오직 .app 파일만 압축하며 전체 빌드 폴더는 아니다.
Verifying a Successful Distribution Build

빌드를 성공적으로 수행하려면 다음을 체크한다.
1. 빌드 로그 디테일 뷰를 열고 "embedded.mobileprovision"파일을 학인한다. 이는 빌드로그에서 프로비져닝 프로필이 성공적으로 호출되었는지를 볼 수 있다. embedded.mobileprovision 이 Debug, Release폴더가 아닌 "Distribution"빌드디렉토리에 위치하고 있는지 확인한다. 또한 대상 경로가 빌드하는 앱인지도 확인한다.
2. 빌드 로그 세부 뷰에서 CodeSign 용어를 찾아 빌드로그에서 iOS Certificate를 통해 서명되었는지를 확인한다.
만약 프로젝트가 위 파일이 없거나 잘못된 디렉토리를 가리킨다면 다음을 수행한다.
1. Target을 선택하고 Build Settings 인스펙터를 연다. Distribution 설정인지 확인한다.
2. Code Signing Identity를 삭제한다. : iOS Distribution : COMPANYNAME
3. Xcode 빌드 메뉴에서 모든 타겟을 삭제한다.
4. 파인더를 사용해 Xcode프로젝트의 존재하는 빌드 디렉토리를 삭제한다.
5. Xcode를 재실행하고 프로젝트를 연다.
6. Target Build Settings 인스펙터에서 코드 서명 지정자 iOS Distribution : COMPANYNAME을 다시 입력한다.
7. 프로젝트를 다시 빌드 한다.

Updating your Application

앱 스토어는 어플리케이션에서 존재하는 어플리케이션의 업데이트여부는 세가지를 확인한다. 어플리케이션을 iTunes Connect에서 업데이트하려면 다음을 수행한다.
1. 어플리케이션의 각 새로운 버젼을 빌드하려면 같은 Distribution Provisioning Profile을 사용한다.
2. 프로젝트의 Info.plist파일의 CFBundleVersion과 CFBundleShortVersionString값을 증가시킨다. 일러두기: 버젼 넘버는 반드시 양의 정수의 period-delimited sequences이어야 한다. (1.1 에서 1.1로 , 2.2.1 에서 2.2.2)
출처 : http://scienart.egloos.com/2142471