[IOS] Apple의 인증 체계 - CodeSigning, Certificates, Provisioning Profile
IOS 개발을 시작하면서 가장 먼저 겪은 문제가 바로 이 인증서 문제이다.
받은 소스가 빌드가 되지 않았고, 인증서가 맞지 않는다는 에러를 발견했다.
구글링을 통해 인증서를 발급받아서 개발을 하다가, 관리가 안되고 계속 인증서가 필요해서 어떻게 관리하면 좋을지 기록으로 남긴다.
인증서는 왜 필요할까?
애플(apple)은 자신들이 허가한 하드웨어(IOS)에 소프트웨어(어플리케이션)가 동작하도록 승인 수 있다.
매번 앱이 실행될 때마다, 해당 앱이 애플로부터 인증을 받았는지 확인한다. 앱은 실행될 수 있는 권한을 가지고 있어야한다. 하지만 개발자는 애플의 권한이 없기 때문에, 애플에게서 권한을 요청해서 받아야한다. 어떻게 요청하고 무었을 요청해야 하는지 정리한다.
개발자 권한 받기
- 키체인에서 인증서 서멍 요청(Certificate Signing Request) 만들기
- 인증서 서명 요청서 제출 후 애플에게 권한 받기
애플 개발자 센터에서 바로 요청할 수 있는 것이 아닌, 인증서 서명 요청을 만들어야 한다.
키체인 접근 > 인증서 지원 > 인증 기관에서 인증서 요청 > 이메일 입력 > 인증서 저장
만든 CSR을 이용해
Apple developer > Certificates, Identifiers & Profiles > Certificates > +버튼(add) > 개발용 / 배포용 선택 > CSR업로드
위 단계를 완료하면 개발용/배포용 인증서를 발급받을 수 있다.
다운 받은 인증서를 실행하면, 나는 애플대신 소프트웨어(어플리케이션)을 실행할 수 있는 권한이 생긴다. 키 체인의 내 인증서에도 추가된다.
Provisioning Profile
프로비저닝 프로파일은 IOS Device와 애플 인증서를 연결하는 것이다.
- App ID : 내가 만든 어플리케이션의 Bundle ID
- Certificate : 위에서 만들었던 애플 인증서.
- Device : 동록된 디바이스의 UDID
이 세가지 정보를 입력하여 프로파일을 만든다.만들어진 *.mobileprovision 파일은
iOS 앱을 컴파일하는 과정에서 사용된다. 앱을 실행하려 하는 디바이스에 설치되어야 한다.
프로비저닝 프로파일 또한 개발용 / 배포용이 있으니 용도에 맞게 생성해서 관리하면 된다.
관리
- CSR은 언제나 개발자의 개발환경에서 생성할 수 있다.
- CSR을 이용해 받은 인증서를 잃어버려도, Apple developer의 Certificates 탭에서 다시 받으면 된다.
- 프로비저닝 프로파일을 잃어버렸을 때는, 2번에서 발급받은 애플 인증서가 필요하다. 추가적으로 번들 ID와 device uuid도 필요하지만 인증서의 형태가 아니다.
댓글
댓글 쓰기