애플은 보안을 매우 중요시 여긴다. 그래서 iOS 앱이, 유저의 아이폰에 보안적 문제를 일으키지 않기 위한 시스템을 구축해두었다.
아이폰에는 오직 애플의 승인을 받은 앱만을 실행할 수 있다. iOS 앱을 만들고 싶은 개발자는 애플의 승인을 받기 위해 연 99달러 (약 12~13만원) 을 내고 Apple Developer Program 에 가입해야 한다.
Apple Developer Program 에 가입하고, 애플 개발자 인증서를 받아야 비로소 애플의 신뢰를 얻은 개발자가 되며, 아이폰에서 실행 가능한 소프트웨어 개발을 할 수 있게된다. 개발자 인증서 없이 개발한 앱은 아이폰 기기에 설치해서 직접 실행할 수 없으며, 시뮬레이터를 통해서만 실행할 수 있다.
Apple Certificate (애플 개발자 인증서) 란, 애플이 "이 개발자는 우리가 신뢰하기 때문에, 이 개발자가 만든 앱은 기기에 설치해도 돼" 라는 인증서다.
Apple Developer Program 에 가입했고, CSR 이 있으면 Apple Certificate 를 받을 수 있게 된다.
CSR 은 말그대로 개발자 인증서를 받기위한 요청서이다. 맥북에서 CSR 를 발급하고, Developer Apple 사이트에서 이 CSR 을 가지고 Apple Certificate 를 발급한다. 인증서는 (.cer) 확장자의 파일이다.
맥북에서 위와 같은 방법으로 생성할 수 있다. 생성 후 저장 옵션으로는 디스크에 저장하기를 선택해야 편하게 관리할 수 있다.
직역하면 프로필 제공. 앱에 대한 프로필을 담고 있는 파일이라고 생각하면 된다.
크게 (App ID / Certificate / Device) 3가지의 정보를 담고 있다.
"A라는 앱은 B라는 개발자가 개발했고, C라는 기기에서 실행할 수 있다." 라는 정보가 담긴 셈이다. 애플은 이렇게 상황을 제약하는 시스템을 가지고 보안을 유지한다.
프로비저닝 프로필 | 용도 | 디바이스 제한 | 배포 방법 | 기타 특징 |
---|---|---|---|---|
Development | 개발 중인 애플리케이션을 테스트 디바이스에서 실행 | 최대 100개 디바이스 | Xcode를 통해 테스트 | 특정 기능 사용 가능 (푸시 알림 등) |
Ad Hoc | 소규모 배포, 클라이언트나 베타 테스터에게 배포 | 최대 100개 디바이스 | UDID 등록 후 .ipa 파일로 배포 | 앱 스토어 배포 불가 |
App Store | 앱스토어를 통한 공개 배포 | 제한 없음 | 애플 앱스토어 | 애플의 검토 과정을 거쳐야 함 |
Wildcard | 여러 애플리케이션을 하나의 프로필로 관리 (주로 개발/테스트 용) | 제한 없음 (와일드카드 번들 ID 사용) | Xcode를 통해 테스트 | 특정 기능 제한 (푸시 알림 등 불가) |
Wildcard 는 com.myapp.*
으로 번들 아이디를 설정해서 com.myapp.app1
, com.myapp.app2
여러 개의 앱의 프로파일을 한 번에 관리하기 위한 용도.
위 일련의 모든 과정을 코드 사이닝이라고 한다.