【问题标题】:Fastlane Codesign Failing w/ Shared Framework使用共享框架的 Fastlane 代码设计失败
【发布时间】:2022-01-14 20:39:56
【问题描述】:

我正在处理一个多目标项目,其中包含一个额外的共享框架目标,该目标本身包含一些 SPM 依赖项。每个应用目标都有自己的包标识符,框架也有自己的标识符。

我正在使用 Fastlane 为项目运行 CI,除此之外,我同时运行 match 和 gym 来提取我的代码签名配置文件并构建应用程序。

我遇到的问题是无论我做什么,唯一框架的协同设计步骤都会失败,并出现错误errSecInternalComponent。我已将签名调整为自动,甚至为我的临时构建匹配生成开发证书,以尝试让框架的签名过程获取它们。

以上是框架标记为Embed & Sign的情况。将其更改为Embed Without Signing 时,我收到一条错误消息,指出No signing certificate "iOS Development" found

据我所知,框架不应该要求在开发者控制台中创建配置文件或应用标识符,但我看到的错误似乎表明它们确实如此。

有人遇到过类似情况吗?在 CI 上下文中运行时,如何让应用程序正确编译,或者至少对框架进行正确的代码签名?

提前感谢所有帮助。

【问题讨论】:

    标签: ios swift xcode frameworks code-signing


    【解决方案1】:

    对于将来遇到类似问题的任何人,我可以通过关闭框架目标上的自动代码签名并将签名从 iOS Developer 设置为 iOS Distribution 来解决此问题。

    由于我使用的是 Fastlane 和 Match,我无法使用自动代码签名。这对于应用程序目标本身来说很好,但它会导致框架目标出现问题。即使框架不需要签名,仍然需要将其设置为自动代码签名或选择代码签名配置文件。

    在 CI/CD 管道中,我只是使用分发证书和 ad-hoc 配置文件为 ad-hoc 分发构建应用程序,因此 Fastlane 不会拉入开发人员配置文件以在框架上进行手动签名以查找。

    一旦我更新了框架以使用 iOS Distribution 配置文件,目标就能够找到 Match 提取的临时证书和配置文件,并使用它们来满足它的要求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 2011-04-11
      • 1970-01-01
      相关资源
      最近更新 更多