为什么 IOS fastlane 发布在 CircleCI 中运行时找不到签名证书

问题描述 投票:0回答:0

一些背景资料: 分发证书存储在私有 Git 存储库中。 在本地运行时 - fastlane match 安装证书以登录 Keystore,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') 

快车道配置:

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

Fastlane 匹配成功安装证书,但构建无法找到它并且归档失败。

通过 SSH 连接到正在运行的实例并发现以下奇怪的事情 - 当寻找代码签名证书时证书安装在默认登录密钥库中 - 返回 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

接下来我检查了 Keystore 是默认的 ketchain:

$ security default-keychain   "/Users/distiller/Library/Keychains/login.keychain-db"

我不知道下一步该做什么。我发现了为 Jenkins/fastlane 描述的类似问题: Jenkins/fastlane - 没有找到本地代码签名身份

如果在 Jenkins 或 CircleCI 中运行的虚拟容器无法访问登录密钥库——那么我看不出 fastlane 版本如何适用于任何人的 IOS 应用程序。

也试图获得 CircleCI 的支持。最终找到解决方案时将报告解决方案,因为多个团队成员在这个问题上浪费了很多时间。它不应该这么难。

ios certificate release circleci fastlane
© www.soinside.com 2019 - 2024. All rights reserved.