[IOS] Apple의 인증 체계 - CodeSigning, Certificates, Provisioning Profile

[IOS] Apple의 인증 체계 - CodeSigning, Certificates, Provisioning Profile

IOS 개발을 시작하면서 가장 먼저 겪은 문제가 바로 이 인증서 문제이다.
받은 소스가 빌드가 되지 않았고, 인증서가 맞지 않는다는 에러를 발견했다.
구글링을 통해 인증서를 발급받아서 개발을 하다가, 관리가 안되고 계속 인증서가 필요해서 어떻게 관리하면 좋을지 기록으로 남긴다.

인증서는 왜 필요할까?

애플(apple)은 자신들이 허가한 하드웨어(IOS)에 소프트웨어(어플리케이션)가 동작하도록 승인 수 있다.
매번 앱이 실행될 때마다, 해당 앱이 애플로부터 인증을 받았는지 확인한다. 앱은 실행될 수 있는 권한을 가지고 있어야한다. 하지만 개발자는 애플의 권한이 없기 때문에, 애플에게서 권한을 요청해서 받아야한다. 어떻게 요청하고 무었을 요청해야 하는지 정리한다.

출처 : http://beankhan.tistory.com/115

개발자 권한 받기

  1. 키체인에서 인증서 서멍 요청(Certificate Signing Request) 만들기
  2. 인증서 서명 요청서 제출 후 애플에게 권한 받기

애플 개발자 센터에서 바로 요청할 수 있는 것이 아닌, 인증서 서명 요청을 만들어야 한다.

키체인 접근 > 인증서 지원 > 인증 기관에서 인증서 요청 > 이메일 입력 > 인증서 저장

만든 CSR을 이용해

Apple developer > Certificates, Identifiers & Profiles > Certificates > +버튼(add) > 개발용 / 배포용 선택 > CSR업로드

위 단계를 완료하면 개발용/배포용 인증서를 발급받을 수 있다.
다운 받은 인증서를 실행하면, 나는 애플대신 소프트웨어(어플리케이션)을 실행할 수 있는 권한이 생긴다. 키 체인의 내 인증서에도 추가된다.

Provisioning Profile

프로비저닝 프로파일은 IOS Device와 애플 인증서를 연결하는 것이다.

  • App ID : 내가 만든 어플리케이션의 Bundle ID
  • Certificate : 위에서 만들었던 애플 인증서.
  • Device : 동록된 디바이스의 UDID

이 세가지 정보를 입력하여 프로파일을 만든다.만들어진 *.mobileprovision 파일은
iOS 앱을 컴파일하는 과정에서 사용된다. 앱을 실행하려 하는 디바이스에 설치되어야 한다.

프로비저닝 프로파일 또한 개발용 / 배포용이 있으니 용도에 맞게 생성해서 관리하면 된다.

관리

  1. CSR은 언제나 개발자의 개발환경에서 생성할 수 있다.
  2. CSR을 이용해 받은 인증서를 잃어버려도, Apple developer의 Certificates 탭에서 다시 받으면 된다.
  3. 프로비저닝 프로파일을 잃어버렸을 때는, 2번에서 발급받은 애플 인증서가 필요하다. 추가적으로 번들 ID와 device uuid도 필요하지만 인증서의 형태가 아니다.
donaricano-btn

댓글

이 블로그의 인기 게시물

[IOS] AppDelegate는 뭐하는 녀석이지?

[git] git의 upstream과 origin 헷갈리는 사람 손!

[git] Github 이슈 라벨(issue labels)