배경
최근 iOS 프로젝트에서, 외부 개발자 입장으로 참여하여 Apple Login 추가, AppStore 배포를 할 일이 있었다. 프로젝트 오너가 [AppStore] - [사용자 및 액세스] 에서 나에게 관리자 권한을 주고, Provisioning Profile을 생성해서 제공했음에도 불구하고, 시뮬레이터에서는 앱이 빌드가 돼서 실행되는데,
1. 실기기 빌드
2. TestFlight에 업로드
이 두가지가 안되는 문제가 생겼다. 예전에는 앱 오너로부터 TestFlight 초대가 이메일로 오면 승인하고 Automatically Manage Signing 체크하면 팀이 보였는데, 이번 경우에는 Team이 뜨지 않아서 Provisioning Profile을 만들어서 Import 하여 개발 & 배포 권한을 얻어야 했다.
그런데 중간에 이 두 에러 때문에 시간을 많이 잡아먹었다.
No signing certificate "iOS Development" found. No "iOS Development" signing certificate matching team ID "CR6FBD7XXX" with a private key was found.
No signing certificate "iOS Distribution" found. No "iOS Distribution" signing certificate matching team ID "CR6FBD7XXX" with a private key was found.
결국 구글링하다가 아주 오래 전 글을 보고 해결하게 되었다.
키체인에 개인키(private key, .p12파일)가 없어서 생긴 문제였다.
해결
1. https://developer.apple.com/account/resources/certificates/list 접속
2. Certificate - iOS App Developement 생성 (실기기 빌드 가능하게 함)
3. Certificate - iOS Distribution (APP Store and Ad Hoc) 생성 (TestFlight 업로드 가능하게 함)
4. Identifiers - Register an App ID
에 앱 번들 등록하고, Capabilities 추가 (나의 경우, Sign In with Apple, Push Notification이 권한이 필요해서 체크했다. 체크 안하면 업로드 리젝(reject, 거절) 당함)
5. Devices
실기기 빌드할 기기의 UUID 입력 (실기기 등록 안하면 Provisioning Profile를 Import 시 기기 찾을 수 없다고 나온다.)
6. Provisioning Profile 생성
- iOS App Development : 테스트 장치에 개발 앱을 설치하기 위한 프로비저닝 프로필을 만듭니다.
- Ad Hoc : 제한된 수의 등록된 장치에 앱을 설치하려면 배포 프로비저닝 프로필을 만드십시오.
- AppStore : 앱을 App Store에 제출하려면 배포 프로비저닝 프로필을 만듭니다.
2,3 번에서 만들어두었던 인증서를 Provisioning Profile에 포함시킨다.
7. 6번까지 진행했는데, 아래와 같은 에러가 뜨는 경우, 개인키(private key, 인증서이름.p12)를 등록하면 개발 및 배포가 가능해진다.
No signing certificate "iOS Development" found. No "iOS Development" signing certificate matching team ID "CR6FBD7XXX" with a private key was found.
No signing certificate "iOS Distribution" found. No "iOS Distribution" signing certificate matching team ID "CR6FBD7XXX" with a private key was found.
8. 오너 계정에서 개인키(private key, .p12 파일) 내보내기
개발 & 배포 둘다 하려면, Development, Distribution 두개 다 내보내야 한다.
9. 외부 개발자 계정에 개인키(private key, .p12 파일) 등록하기
10. XCode에서 개발 시, 개발 전용 Provisioning Profile을 Import 하고, 배포 시 배포 전용 Provisioning Profile을 Import 하면 된다.
느낀점
AppStore는 Android(PlayStore)에 비해 여러 면에서 외부 개발자에게 개발 및 배포 권한을 주는 과정이 복잡하다고 느꼈다.
'개발 > iOS' 카테고리의 다른 글
iOS Flutter 프로젝트에서 flutter_downloader 1.11.4 통합하기 (2) | 2024.01.24 |
---|---|
Flutter :: Appstore 소셜로그인 심사 후기 (0) | 2022.12.19 |