Bitrise 正在尝试使用错误的配置文件对嵌入式框架进行代码签名

Bitrise is trying to code sign an embedded framework with wrong provisioning profile

我的 iOS 项目有一个嵌入式框架。我试图在 Bitrise 上构建它,但它失败了,因为它试图使用与实际项目相同的配置文件对该框架进行代码签名。

这是它产生的错误(为了便于阅读,分成几行):

❌  Code Sign error: Provisioning profile does not match bundle identifier: 
The provisioning profile specified in your build settings 
(“Profile Name”) has an AppID of “com.example.mainidentity” 
which does not match your bundle identifier 
“com.example.frameworkidentity”.

我已经尝试过 使用配置文件强制代码签名使用身份强制代码签名,没有任何一个和其他各种排列。在框架的构建设置。等等

我在主项目的构建阶段Copy上留下了代码签名。

似乎没有任何效果。

据我了解,嵌入式框架在存档项目时应仅使用 iOS 开发人员身份进行签名。

-

项目存档在我的本地机器上没问题。

环境与信息:

使用工作区,嵌入式框架确实拥有自己的 pods,主项目也是如此。

我在 OS X 10.11.6

上使用 Xcode 7.3

配置文件是 iOS UniversalDistribution 类型。

Bitrise 工作流程正在使用:

如果需要任何其他信息或任何需要澄清的内容,请告诉我!

谢谢!!

在这种情况下,您不应使用 "Force code signing with Provisioning Profile",因为(这只是传递给 Xcode 的一个选项)将强制该特定配置文件用于项目的每个部分!

您可以在此处找到更多信息:https://bitrise-io.github.io/devcenter/ios/code-signing/#full-manual-full-control

TL;DR;不要使用完整的 Provisioning Profile ID,如果确实需要,请使用 "Force Identity"(并且可能只是 Force Prov Profile 的类别,例如 "iPhone Distribution"),Xcode 会找出哪个要使用的配置文件,基于身份和捆绑 ID 等。

也就是说,从 Xcode 7 开始,推荐的方法是使用 "Export Options Plist",而在 Xcode 8 中,如果您选择加入自动代码签名,那是您唯一的选择。简而言之,推荐的方法是使用开发代码签名进行初始签名,然后为 Xcode 指定 "export method"(对于 Bitrise,这是 Xcode 存档步骤的一个选项).此处唯一需要注意的是,您需要同时提供开发 分发证书和配置文件。但是一旦你这样做了,选择正确的分发方式就像将 "export method" 选项(Xcode 存档步骤)设置为你想要使用的类型一样简单(例如 ad-hocapp-store).

更多信息:https://bitrise-io.github.io/devcenter/ios/code-signing/#using-export-options-available-for-xcode-7-and-xcode-archive-step-v191

P.S.: 如果你想迁移到新的代码签名选项,你应该重置你之前指定的输入 - 如果你使用 Web UI,这可能是最快的方法是删除 Xcode 存档步骤,然后在同一位置添加一个新的。