2013년 3월 25일 월요일

만료된 Distribution Provisioning Profile 갱신 방법

처음으로 만든 아이폰용 앱이 앱스토어에 등록된지 1년이 지나 배포 정책 프로파일의 사용기간이 만료되어 갱신이 필요했다. 하지만 개발용 프로파일과는 달리 'Renew' 할 방법이 제공되지 않는다. 보안과 직결된 인증서는 왠지 실수해서 다루면 낭패(?)가 생길 것 같은 공포심에 사로잡혀 있는 (필자를 포함한) 선량한 개발자를 위해, 꼭 알아두어야 할 점에 대해 정리해보자.



Distribution Provisioning Profile 을 삭제해도 등록된 앱은 앱스토어에 남는다.
일단 앱스토어에 등록된 앱은 'Apple ID'가 부여되고 이를 기반으로 관리되며 등록된 이후에는 애플 개발자 프로그램의 계약사항에 동의하지 않거나 세금 정보가 올바르지 않는 등의 법적 사유를 위반하지 않는 이상 판매는 계속 된다.
(TODO: 개발자 프로그램이 만료되었을 때에도 판매가 지속되는지 알아볼 것)

*애플에서는 계약사항이 변경될 때 마다 개발자에게 이메일로 통보해준다. 소량의 약관이 변경되는 경우도 있지만, 이미 판매중인 제품에도 적용되는 신규 서비스가 추가된 경우와 같이 매우 중대한 사항인 경우도 있다. 개발자 프로그램이 만료되었다면 개발자 센터에 접속해도 방문객의 권한만이 주어지므로, 변경된 약관에 동의하거나 서비스를 수정하기 위해서는 개발자 프로그램을 다시 구입하고 갱신절차를 수행해야 한다. 필자는 개발자 프로그램이 만료되고 몇달 후에 갱신했는데, 그 사이 신규 서비스 약관이 추가되었고 이에 동의하지 않아 앱스토어에서 내가 만든 앱이 '사라졌었다'.


이미 등록된 앱의 Distribution Provisioning Profile 을 삭제해도 수정된 앱을 다시 등록할 수 있다.
Provisioning Profile 은 개발한 앱을 아이폰과 같은 실제 기기에서 실행하거나 앱스토어에 등록하기 위해 필요하다. 따라서, 앱스토어에 1.0 버전의 앱을 등록하고 나서 배포 인증서와 배포 정책 프로파일을 삭제한 후, 나중에 모두 새로 생성하여 코드를 빌드해 1.1 버전으로 앱을 등록할 수 있다.

따라서, 개인/공개 키, 인증서, 프로비져닝 등 모든 것이 삭제되어도 기존에 등록한 앱의 새 버전(업그레이드)을 새로 등록할 수 있다. 다만, 모든 인증관련 항목들을 새로 만들고 Xcode의 코드 사인을 수정하는 수고를 해야할 뿐이다.



이제 원래의 목적대로 Distribution Provisioning Profile 을 갱신해보자.


1. 새 배포 인증서 생성


키체인의 인증서 목록에 'Apple Worldwide Developer Relations Certification Authority'가 없다면 '*If you do not have the WWDR intermediate certificate installed, click here to download now.'를 클릭하여 WWDR을 다운로드 받은 후, 이를 더블클릭하여 키체인에 추가한다. (키체인에 추가되었다면 다운로드 받은 파일을 삭제하고 필요한 경우 웹에서 다시 다운로드 받을 수 있다.)

유효 기간이 만료된 후 iOS Provisioning Portal 에 접속하여 Certificates 항목의 Distribution 탭을 보면 배포 인증서가 삭제되어 있다. 'Request Certificate' 버튼을 눌러보자. 배포 인증서 생성을 위해 인증 서명 요청파일을 업로드하게 되어 있는데, 기존에 생성해 놓은 개인키를 이용해 인증서를 생성할 수 있다.

키체인 접근 유틸리티에서 기존의 개인키를 우클릭해 '"아무게" (으)로 인증 기관에서 인증서 요청...'을 누른 다음, 애플 개발자 등록에 사용한 이메일과 이름을 입력하고 요청 항목에 '디스크에 저장됨'을 선택한 후 '계속' 버튼을 누르면 인증 서명 요청파일을 생성할 수 있다.


필자는 앱개발을 처음 시작할 때 등록과정을 여러번 연습하여 같은 이름의 키들이 넘쳐났는데, 이와 같은 방법으로 중복되는 키 없이 최초 생성한 키를 이용해 모든 인증서와 정책 프로파일을 생성할 수 있었다. 미리 생성된 개인 키가 없다면 웹페이지의 안내를 따라 새로 생성한다. 참고로 키체인 접근 유틸리티에서 생성된 각 항목들은 더블클릭하여 이름을 변경할 수 있다.

'파일 선택' 버튼을 눌러 생성된 인증 서명 요청파일을 선택하고 'Submit' 버튼을 누르면 새 인증서 생성이 진행된다.


'Pending Issuance' 상태이지만 잠시 기다렸다가 패이지를 새로 고치면 아래와 같이 새 만료기간이 표시되고 'Issued' 상태가 된 것을 볼 수 있다.



2. 배포 정책 프로파일 변경


좌측의 메뉴에서 'Provisioning' 을 누르고 'Distribution' 탭을 눌러보면, 회색으로 사용불가능 했던 'Modify' 버튼이 살아있다. 클릭하여 프로파일명과 App ID 를 선택하고 'Submit' 버튼을 누른다.


인증서 생성과 마찬가지로 프로파일이 생성되는 동안 'Pending' 상태가 된다.


잠시 후 패이지를 새로 고치면 'Active' 상태가 된 것을 확인할 수 있다.


이제 'Download' 버튼을 눌러 새로 생성된 배포 정책 프로파일을 Xcode 프로젝트에 이식하고 빌드하여 앱스토어에 업로드할 수 있다.

댓글 1개:

  1. 덕분에 걱정했던 것을 해결했네요. 감사합니다.

    답글삭제