생계유지형 개발자/Mobile

[ios] 매년 봐도 어려운 애플 인증서 정리요약

이 가을 2022. 5. 20. 15:27

배경

애플은 자신들의 하드웨어(아이폰, 맥, 워치 등)에서 자신들이 인증을 한 소프트웨어(앱, 실행파일 등)만 실행될 수 있도록 강제한다.

무엇을 인증하냐면, 소프트웨어(이하 앱)를 만든 개발자가 신뢰할 수 있는 ""이 만든 ""인지를 확인하고 그렇다고 인증(인정)한다.

그래서 앱을 실행할 때마다 애플로부터 인증받은 앱인지 반드시 확인하며, 이 때 인증서가 사용된다.

앱을 설치하면 안에 인증서가 들어 있어서 실행할 때마다 "이 앱은 신뢰할 수 있는 놈이 만든 앱이니까 실행해도 된다"고 알려주는 거다.

그럼 만약 기간이 만료된 인증서가 포함된 앱을 실행하면?

당연히 앱을 실행할 수 없다.

 

인증서는 어떻게 앱에 들어있을까? 앱을 배포할 때 인증서를 포함시키기 때문이다.

iOS 앱을 개발해서 앱스토어든, 사내든 배포를 하려면 반드시 세가지 인증서 (또는 파일)이 필요하다.

  • Certificate Signing Request (개발자 인증) 
  • iOS Distribution(배포 인증서)
  • Provisioning Profile(프로비저닝 프로파일)

* Apple Push Services (푸시 인증서)는 부가 요소이다.

 

인증서 Q&A

 

1. iOS Distribution : 배포 인증서란?

말 그대로 앱을 배포할 때 사용(서명)하는 인증서다.

 

2. iOS Distribution : 배포 인증서 만료 시,

이 인증서로 서명된 앱을 실행할 수 없다. 새 인증서로 서명된 새 버전의 앱을 배포해야 한다.

 

3. Provisioning Profile : 프로비저닝 프로파일이란?

Provisioning Profile은 아래의 세가지 정보를 포함하고 있으며, 이를 통해 앱이 특정 서비스(예: 푸시 알림)를 사용하도록 승인하고 디바이스가 개발자를 신뢰할 수 있는지 확인한다.

  • App ID : 앱 스토어에 등록될 Bundle ID가 등록
  • iOS Distribution : 배포 인증서
  • Device : 디바이스의 UDID

4. Provisioning Profile : 프로비저닝 프로파일 만료 시,

Provisioning Profile은 앱에 포함되어 있으므로, 만료되면 앱이 실행되지 않으므로 갱신 후 새로 배포해야 한다.

 

5. Apple Push Services : 푸시 인증서 만료 시,

해당 앱에 푸시 알림을 보낼 수 없다.