iOS 코드 사이닝

김상우·2024년 2월 7일
0

Apple 의 보안 시스템

애플은 보안을 매우 중요시 여긴다. 그래서 iOS 앱이, 유저의 아이폰에 보안적 문제를 일으키지 않기 위한 시스템을 구축해두었다.

아이폰에는 오직 애플의 승인을 받은 앱만을 실행할 수 있다. iOS 앱을 만들고 싶은 개발자는 애플의 승인을 받기 위해 연 99달러 (약 12~13만원) 을 내고 Apple Developer Program 에 가입해야 한다.

Apple Developer Program 에 가입하고, 애플 개발자 인증서를 받아야 비로소 애플의 신뢰를 얻은 개발자가 되며, 아이폰에서 실행 가능한 소프트웨어 개발을 할 수 있게된다. 개발자 인증서 없이 개발한 앱은 아이폰 기기에 설치해서 직접 실행할 수 없으며, 시뮬레이터를 통해서만 실행할 수 있다.

Apple Certificate

Apple Certificate (애플 개발자 인증서) 란, 애플이 "이 개발자는 우리가 신뢰하기 때문에, 이 개발자가 만든 앱은 기기에 설치해도 돼" 라는 인증서다.

Apple Developer Program 에 가입했고, CSR 이 있으면 Apple Certificate 를 받을 수 있게 된다.

CSR (Certificate Signing Request)

CSR 은 말그대로 개발자 인증서를 받기위한 요청서이다. 맥북에서 CSR 를 발급하고, Developer Apple 사이트에서 이 CSR 을 가지고 Apple Certificate 를 발급한다. 인증서는 (.cer) 확장자의 파일이다.

맥북에서 위와 같은 방법으로 생성할 수 있다. 생성 후 저장 옵션으로는 디스크에 저장하기를 선택해야 편하게 관리할 수 있다.

Provisioning Profile

직역하면 프로필 제공. 앱에 대한 프로필을 담고 있는 파일이라고 생각하면 된다.
크게 (App ID / Certificate / Device) 3가지의 정보를 담고 있다.

  • AppID : 어떤 앱인가.
  • Certificate : 누가 개발했는가.
  • Device : 어떤 기기에서 실행할 수 있는가.

"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 여러 개의 앱의 프로파일을 한 번에 관리하기 위한 용도.

코드 사이닝 (Code Signing)

위 일련의 모든 과정을 코드 사이닝이라고 한다.

profile
안녕하세요, iOS 와 알고리즘에 대한 글을 씁니다.

0개의 댓글