CircleCI中Fastlane打包iOS应用时找不到签名证书的问题求助
CircleCI中Fastlane打包iOS应用时找不到签名证书的问题求助
各位大佬,我最近在CircleCI上用Fastlane打包iOS应用时碰到了一个超级头疼的签名证书问题,本地运行一切正常,但到CI环境里就死活找不到证书,折腾了好几天都没搞定,来这儿求助大家!
背景信息
- 我们的iOS分发证书存在私有Git仓库中
- 本地执行时,
fastlane match能顺利把证书安装到登录密钥链,fastlane release也能正常打包生成IPA并完成签名 - 但在CircleCI上运行完全相同的流程时,打包环节直接报错找不到证书:
error: No signing certificate "iOS Distribution" found: No "iOS Distribution" signing certificate matching team ID "**********" with a private key was found. (in target 'APPNAME' from project 'APPNAME')
Fastlane & CircleCI相关配置
我的CircleCI配置和Fastlane执行流程如下:
version: 2.1 workflows: testing: jobs: - ios-build jobs: ios-build: macos: xcode: 14.2 steps: - checkout - run: rbenv install 2.7.5 - run: bundler install - run: yarn install - run: gem install fastlane - run: gem install cocoapods - run: cd ios && pod install - run: cd ios && fastlane match && fastlane release
已做的排查步骤
我通过SSH连接到CircleCI的运行实例,发现了非常奇怪的现象:
- 明明
fastlane match已经提示证书安装成功,但执行security find-identity -p codesigning查询签名身份时,返回0个结果:
$ security find-identity -p codesigning Policy: Code Signing Matching identities 0 identities found Valid identities only 0 valid identities found
- 但如果手动指定登录密钥链的完整路径执行查询命令,就能正常找到我们的分发证书:
$ security find-identity -p codesigning /Users/distiller/Library/Keychains/login.keychain-db Policy: Code Signing Matching identities 1) 006F6D751DD7B096DCD94270F0588D1D70BE1DF3 "Apple Distribution: Island Pay Group Ltd (Q2UH3KHT9C)" 1 identities found Valid identities only 1) 006F6D751DD7B096DCD94270F0588D1D70BE1DF3 "Apple Distribution: Island Pay Group Ltd (Q2UH3KHT9C)" 1 valid identities found
- 我还特意确认了这个密钥链确实是系统默认的:
$ security default-keychain "/Users/distiller/Library/Keychains/login.keychain-db"
目前的困惑
我现在完全摸不着头脑了——既然默认密钥链是对的,证书也确实安装进去了,为什么系统就是识别不到呢?之前看到过Jenkins+Fastlane有类似的问题,但CircleCI作为常用的CI/CD平台,这种问题不应该这么普遍吧?
我已经联系了CircleCI的官方支持,等有解决方案一定会回来更新这个帖子,毕竟这个问题浪费了我们团队好几个成员的大量时间,实在不应该这么折腾人。
备注:内容来源于stack exchange,提问作者user2002018
相关产品推荐
相关产品推荐

