Machineboy空

Xcode Provisioning이란? 본문

카테고리 없음

Xcode Provisioning이란?

안녕도라 2024. 5. 9. 22:28

대략 이해한 Provisioning의 개념 정리

 

앱스토어 개발자 계정을 활성화해둔 A가 나머지 B,C,D를 본인의 팀으로 초대했다.

 

애플에서는 팀 계정으로 접속한 컴퓨터가 해커의 기기인지, 어느 기기인지 판단 할 수 없기 때문에,

B,C,D에게 인증서를 부여하여 공인된 기기임을 인정해주는 과정이 필요하다.

이 과정이 provisioning이라는 과정인 듯하다.

 

우리가 마주한 문제

 

A는 같은 계정으로 애플 뮤직을 구독하고 있다.

 

B,C,D는 개발 과정에서 MusicKit을 사용할 것이며, 애플 뮤직 API를 활용해 인기곡을 load하여 재생하는 플레이어 기능을 구현하려고 한다.

이를 위해선 애플 뮤직을 구독하고 있다는 인증(?)이 필요한 상황.

 

프로비저닝을 한다고, B,C,D가 A 계정의 애플뮤직 구독 서비스까지 가져와 쓸 수 있는걸까?

 

우선 프로비저닝 과정을 구체적으로 이해해 보겠다..


(참고 블로그)

https://sujinnaljin.medium.com/ios-certificate-와-provisioning-profile-e1b9455e8a51

 

[iOS] Certificate 와 Provisioning profile

인증서와 프로비저닝 프로파일에 대해 알아봅시다

sujinnaljin.medium.com

 

이 앱이 믿고 설치할만한 앱인가? 증명하는 방법

 

Apple에서 인증서를 받는다

"애플이 나를 합법적 개발자로 인정한다!"

 

1. 신청서 작성

키체인에서 인증기관에 인증서 요청을하면

CSR(Certificate Signing Request)이라고 하는 인증 서명 요청을 다운받을 수 있다.

즉, 일종의 인증서를 위한 신청서이다.

 

기본적으로 인증서는 Apple Developer Program에 가입된 사람들만 신청할 수 있다.

 

2. 인증서 발급

인증서는 다양한 종류가 있지만 대표적으로

  • Apple Development 개발용 - build할 때 필요!
  • Apple Distribution 배포용

신청서를 업로드 하고, 생성된 인증서를 다운받고, 로컬에 설치하면

Signing Certificate(서명 인증서)가 된다!

 

3. 프로비저닝 프로파일 생성 후 포함시키기

Apple의 인증서가 아닌, Apple이 발급한 인증서로 서명한 앱을 기기에서 실행하려면?

디바이스 내에서 앱을 실행하기 위한 규칙을 모아놓은 것이 '프로비저닝 프로파일'!

  • 어느 디바이스에서 실행할 수 있는지?
  • 언제 실행할 수 있는지?
  • 앱의 권한은 어떤 것들이 있는지?

등 많은 제약 조건들을 명시해 두고, 실제 디바이스에서 앱을 실행할 때의 환경이 이 제약 조건과 일치하면 실행되는 것

 


< 프로세스 요약>

1. 키체인에서, 서명에 필요한 인증서(신청서, CSR) 요청

2. CSR에 개인키 공개키 쌍 만들어 작성 후 다시 애플에 인증서 업로드

3. 서명된 인증서 다운로드

4. 엑스코드에서, provisioning profile 즉, 디바이스에서 앱을 실행하기 위한 규칙들을 담은 문서를 만들어달라고 요청

5. 만들어진 프로파일이 특정경로에 다운받아진다

6. 앱 번들에 프로비저닝 프로파일을 포함시키고, 서명 인증서를 포함해 앱을 실행시킨다.