-
FastLane Match 를 이용해 사이닝 관리하기iOS 2020. 8. 6. 09:33반응형
커맨드 라인으로 할 때 사이닝 이슈
Testflight 로 업로드할 때는 appstore, Firebase Distirbution 으로 배포할 때는 adhoc 의 사이닝이 적절하게 위 깃허브에 저장되어 있어야 합니다. 그렇지 않으면 사이닝이 적절하게 되지 않아, match 액션에서 막혀서 빌드가 취소되게 됩니다.
코드 사이닝 기본 개념
한 계정에 인증서와 프로비저닝 프로필을 넣어 두고, git 에 올려두어서 필요할 때 관리하는 방식입니다.
깃에 코드 사이닝을 관리하는 방법
기본 요구사항은 팀 전체에서 하나의 코드 서명 ID를 공유하는 것입니다. 가장 쉬운 방법은 iOS-dev@company.com과 같은 팀의 새로운 Apple ID를 만들어 지금부터 사용하는 것입니다.
시작하려면 다음을 수행합니다.
- 먼저 프로필을 저장할 수 있는 새로운 개인 Git repo를 만듭니다.
- 다음으로, "Distribution"과 "Development"과 같은 각 환경에 대한 새로운 개인 키와 인증서를 만듭니다. 그런 다음 이러한 개인 키와 인증서를 Git repo에 저장합니다.
- 그런 다음 일치하는 인증서로 "Development", "App Store" 및 "Ad hoc"과 같은 다양한 대상에 대한 프로비저닝 프로파일을 새로 만들어 Git repo에 저장합니다.
- 파일을 Git에 커밋하기 전에 해당 파일을 암호화하는 것이 좋습니다(예: openssl 사용).
- 이제 각 시스템이 Git repo에 액세스하여 최신 인증서 및 프로비저닝 프로파일을 설치할 수 있습니다.
- Finder를 사용하거나 'security import' 명령을 사용하여 인증서와 개인 키를 Keychain으로 가져와야 합니다.
- 프로비저닝 프로파일은 '~/Library/MobileDevice/Provisioning\ Profiles/'에 복사해야 합니다.
- Xcode 프로젝트는 프로비저닝 프로파일을 자동으로 선택하거나 정적으로 정의하도록 구성해야 합니다. 이상적인 솔루션은 각 번들 식별자에 대해 프로비저닝 프로파일의 UUID를 환경 변수를 통해 전달하는 것입니다.
나중에 Ad Hoc 또는 Development 프로비저닝 프로파일에 새 장치를 추가하면 Git repo에서 프로파일을 업데이트할 수 있습니다.
Passphrase
새 시스템에서 match를 처음 실행할 때 Git 저장소에 대한 암호를 묻는 메시지가 표시됩니다. 이것은 추가적인 보안 계층입니다. 각 파일은 "openssl"을 사용하여 암호화됩니다. 다른 컴퓨터에서 일치 항목을 실행할 때 필요하므로 암호를 반드시 기억해야 합니다.
환경 변수를 사용하여 프로필의 암호를 해독하도록 암호문을 설정하고 프롬프트를 방지하려면 MATCH_PASSWORD를 사용합니다.
다른 기기에서 처음으로 코드 사이닝 설정하기
새 시스템에서 인증서 및 프로비저닝 프로파일을 설정하려면 다음을 사용하여 동일한 명령을 실행합니다.
fastlane match development
레퍼런스
빈번하게 일어나는 사이닝 이슈 모음집 해결 방법
Certificate '~~~~' (stored in your storage) is not available on the Developer Portal
[10:19:38]: Certificate '~~' (stored in your storage) is not available on the Developer Portal [10:19:38]: for the user [10:19:38]: Make sure to use the same user and team every time you run 'match' for this [10:19:38]: Git repository. This might be caused by revoking the certificate on the Dev Portal [!] To reset the certificates of your Apple account, you can use the `fastlane match nuke` feature, more information on <https://docs.fastlane.tools/actions/match/>
- 인증서를 저장하는 레퍼지터리를 클론합니다.
- Cert 에서 오류로 말하는 파일을 찾아 제거합니다.
- 커밋하고 푸시합니다.
- 프로젝트에서
fastlane match appstore fastlane match adhoc fastlane match development
등을 다시 실행해서 인증서를 재발급받습니다.
error: Provisioning profile "iOS Team Provisioning Profile: com~~.ㅊ." doesn't include signing certificate "Apple Development: [사용자 이름 (abcde)". (in target 'Release' from project 'com.company')
1. 빌드하는 머신의 Keychain Access 에 들어갑니다.
2. 에러를 뿜는 사이닝 인증서, 여기선 abcde 입니다. 그게 있을 겁니다.
3. 그걸 삭제하고 재빌드해 봅니다.
반응형'iOS' 카테고리의 다른 글
Fastlane 으로 Firebase Distribution 연동하기 (0) 2020.08.06 XcodeGen을 활용해 xcodeproj의 마지 컨플릭트에서 벗어나라 (0) 2020.04.26 애드훅보다 간편하다! 테스트플라이트보다 빠르다! 파이어베이스 iOS 배포를 활용해 보자 (4) 2020.04.26 Xcode 11 에서 애드훅으로 앱을 배포하는 방법, 드롭박스나 구글 클라우드 이용보다 확실한 배포 방법 (1) 2020.04.26 [잡설] 빌드 속도 단축에 대한 고민 (0) 2020.04.25