0

我的 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”.

我已经尝试过使用 Provisioning Profile进行强制代码签名,使用 Identity进行强制代码签名,没有任何一种和其他各种排列。在框架的构建设置中将代码签名身份iOS 开发人员更改为不进行代码签名。等等。

我在主项目的 Build Phases 中保留了Code Sign on Copy

似乎没有任何效果。

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

-

项目存档在我的本地机器上很好。

环境与信息:

使用工作空间,嵌入式框架确实有它自己的 pod,主项目也是如此。

我在 OS X 10.11.6 上使用 Xcode 7.3

配置文件是iOS UniversalDistribution类型之一。

Bitrise 工作流程使用:

  • 证书和配置文件安装程序 - 1.7.0

  • Xcode:创建存档 - 1.9.2

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

谢谢!!

4

1 回答 1

3

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

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

TL;博士; 不要使用完整的 Provisioning Profile ID,如果你真的必须使用“Force Identity”(也许只是 Force Prov Profile 的一个类别,比如“iPhone Distribution”),Xcode 将根据身份和捆绑 ID 等。

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

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

PS:如果您想迁移到新的代码签名选项,您应该重置您之前指定的输入 - 如果您使用 Web UI,可能最快的方法是删除 Xcode Archive 步骤,然后添加一个新的到同一个地方。

于 2016-09-20T12:40:13.393 回答