애플 개발자라면 꼭 알아야할 코드사이닝, 인증서, 프로비저닝 프로파일의 개념 및 실행 과정에 대해 알아보도록 하겠습니다.
인증서 과정을 처음 접하시는분들의 입장에선 까다롭고 복잡하여 포기하시는 경우를 종종 봤습니다.
그런데 왜 굳이 애플은 인증서를 만들어야될까요? 애플은 자신들의 기기에 어떠한 프로그램이 동작하기위해선 인증을 받아야되는데 이 부분에 대해 인증을 받기 위해서 인증서를 요청해야됩니다.
또한 앱을 앱스토어에 배포하거나 인앱결제를 할때도 iOS 꼭 필요한 절차입니다.
먼저 애플 인증서가 무엇이고, 어떻게 만드는지에 대해 알아 보도록 하겠습니다.
애플 인증서
애플만이 자신들의 기계(하드웨어)에 소프트웨어(앱, 프로그램 등)이 동작하도록 허락하기 때문입니다.
실제로 앱이 실행될때마다 애플로부터 인증을 받았는지 확인을 합니다. 애플만이 앱을 실행할 수 있다면 매번 애플에 요청하고 관리하기가 번거로워, 개발자가 iOS Developer Program의 개발자 센터에 인증서를 받으면 애플이 개발자를 신뢰하여 애플 대신 앱을 실행 할 수 있는 권한을 부여받기 때문에 인증서가 필요한겁니다!!!!!!
인증서 받는 방법
1. Key 만들기 (인증 사인 요청)
먼저 인증서를 받기 위해서는 키체인 접근 앱에서 CSR(Certificate Signing Request)를 생성해야합니다.
위쪽메뉴에서 키체인 접근 -> 인증서 지원 -> 인증 기관에서 인증서 요청
인증 기관에 인증서 요청을 하게되면 다음과 같은 작업을 수행합니다.
1. 인증서의 공개키와 개인키를 자동으로 생성합니다. 이는 키체인 앱에서 카테고리의 키항목을 확인해 볼 수 있고, 잘 보관해야됩니다.
2. 애플에 보낼 CertificateSigningRequest.certSigningRequest 파일을 생성한다. 이 파일은 이름, 이메일 공개키를 포함하고 있고, 개인키를 이용해서 사인하게 됩니다.
2. Certificate 발급 받기
Apple Developer(https://developer.apple.com) -> Certificates, Identifiers & Profiles 클릭
1. Development와 Production용으로 나뉨
2. CSR(CertificateSigningRequest)를 만드는 방법을 설명하는데 (미리 만들었으니 Continue)
3. CSR 등록 후 Continue
4. 다운로드를 클릭해서 더블클릭 후 KeyChain에 잘 적용됬는지 확인합니다.
위의 과정을 거치게 되면 애플의 노예? 아니 앱을 사인할 수 있는 권한이 생겼습니다.
즉, 애플에서 인증을 한 개발자가 된것입니다.
하지만 앱을 사인할 수 있도록 허락을 받은 상태이지 기기가 또 나를(개발자)를 신뢰할 수 있는지를 알아야만 설치를 시켜줍니다!
지금 만든 애플인증서와 iOS기기를 연결시켜주어야하는데 이것을 프로비저닝 프로파일이라고 합니다.
프로비저닝 프로파일(Provisioning Profile)
프로비저닝 프로파일은 iOS기기와 애플 인증서를 연결을 하는 것을 의미
Provisioning Profile에는 위의 그림처럼 3가지가 들어가게됩니다.
- App ID : 앱 스토어에 등록될 Bundle ID가 등록.
- Certificate : 위에서 만들었던 인증서.
- Device : 디바이스의 UDID
프로비저닝 프로파일을 생성하기 전에 Certificate는 만들었으니 App ID와 Device등록절차가 필요함으로 먼저 AppID를 만들어 보고 Device 등록도 해보겠습니다.
App ID 생성방법
Apple Developer(https://developer.apple.com) -> App IDs클릭
1. 상단 위 `+` 클릭
2. 사용할 Bundle ID를 적어 줍니다.
<추천>
We recommend using a reverse-domain name style string (i.e., com.domainname.appname). It cannot contain an asterisk (*).
3. 사용할 App Services를 체크해주세요. (나중에도 수정이 가능합니다)
4. Continue
5. Register -> Done
이제 준비(App ID, Certificate, Device)가 끝났으니 Provisioning Profile을 만들어봅시다.
Provisioning Profile 생성방법
Apple Developer(https://developer.apple.com) -> Provisioning Profiles -> All 클릭
1. 개발용, 배포용 선택 후 Continue
2. 만들었던 App ID선택 후 Continue
3. 인증서 선택 후 Continue
4. 디바이스를 선택하고 Continue
5. 이름을 적어주고 Continue
6. 드디어 프로비저닝 파일이 만들어졌습니다. 파일을 다운받아 두세요.
아는 만큼 보인다고 이제 프로젝트의 General 탭에서 Sining이 다르게 보이실겁니다.
Automatically manage signing이 체크가 되어있으면 Provisioning Profile과 Certificate, App ID등 Xcode에서 자동으로 생성됩니다.
위 처럼 자동으로 생성되도록 할 수도 있고, 직접 Developer사이트에서 생성하고, import할 수 있습니다. 다만 Provisioning Profile을 생성하는 도중에 꼬일수도 있는 상황이 있기 때문에 수동으로 관리하는 방법도 알아두면 좋습니다.
Automatically manage signing이 체크를 해제하시면 Singing (Debug)와 Signing (Release)로 나뉘게 되는데 쉽게 Debug는 개발용, Release는 배포용으로 생각하시면 됩니다.
저희는 지금 개발 환경으로 프로비저닝프로파일을 만들었기 때문에 Singing (Debug)를 보겠습니다.
다운 받아둔 Provisioning Profile을 import 시켜주면 에러가 나지 않고 정상적인 화면을 볼 수 있습니다.
혹시 에러가 나시면 등록한 Bundle Identifier가 맞는지 확인해주세요!
개발자는 복수의 프로비저닝 프로파일을 가질 수 있지만 프로비저닝 프로파일을 생성할때 연동한 App ID와 실제 컴파일하려는 프로젝트의 Bundle ID가 일치해야됩니다. 즉, 각 프로젝트마다 별로의 프로비저닝 프로파일을 만들어 줘야된다는 의미입니다.
지금까지 해왔던 과정을 코드사이닝 작업이라고 볼 수 있습니다.
Signing your app allows iOS to identify who signed your app and to verify that your app hasn’t been modified since you signed it. The Signing Identity consists of a public-private key pair that Apple creates for you.
출처 : https://medium.com/@abhimuralidharan/what-is-a-provisioning-profile-in-ios-77987a7c54c2
'iOS' 카테고리의 다른 글
[iOS] Build Configuration 설정 방법 (0) | 2019.07.31 |
---|---|
[iOS] Cell Life Cycle (1) | 2019.07.30 |
[iOS] 파일시스템(File System) (0) | 2019.07.25 |
[iOS] ContentOffset과 ContentInset (0) | 2019.07.25 |
[iOS] ScrollView (0) | 2019.07.25 |