我的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”.
我已尝试使用使用配置文件进行强制代码签名,使用身份进行强制代码签名,而不使用其他任何排列和其他各种排列。在框架的构建设置中,将代码签名身份从 iOS Developer 更改为 Don代码签名。等等。
我已在主项目的构建阶段中将代码签名复制 。
似乎没什么用。
我的理解是,嵌入式框架只需在归档项目时使用iOS Developer身份进行签名。
-
项目存档在我的本地机器上很好。
环境&信息:
使用工作区,嵌入式框架确实拥有自己的pod,主项目也是如此。
我在OS X 10.11.6上使用Xcode 7.3
配置文件是 iOS UniversalDistribution 类型。
Bitrise工作流程正在使用:
证书和个人资料安装程序 - 1.7.0
Xcode:创建档案 - 1.9.2
如果需要任何其他信息或任何需要澄清的信息,请告诉我们!
谢谢!
答案 0 :(得分:2)
您不应该使用"使用配置文件强制代码签名"在这种情况下,因为(这只是一个传递给Xcode的选项)将迫使该特定的配置文件用于项目的每个部分!
您可以在此处找到更多信息:https://bitrise-io.github.io/devcenter/ios/code-signing/#full-manual-full-control
TL; DR;不使用完整的配置文件ID,而是使用" Force Identity"如果你真的需要(也许只是Force Prov Profile的类别,比如" iPhone Distribution"),Xcode将根据身份和捆绑ID等确定要使用的配置文件。
也就是说,因为Xcode 7推荐的方法是使用"导出选项Plist",如果您选择加入自动代码签名,那么这是您唯一的选择。简而言之,建议的方法是使用开发代码签名进行初始签名,然后指定"导出方法"对于Xcode(在Bitrise的情况下,这是Xcode存档步骤的一个选项)。这里唯一需要注意的是,您需要开发和分发证书&配置文件可用。但是一旦你这样做,选择合适的分发就像设置"导出方法"选项(Xcode存档步骤)到您要使用的类型(例如ad-hoc
或app-store
)。
PS:如果您想要迁移到新的代码签名选项,您应该重置之前指定的输入 - 如果您使用Web UI,可能最快的方法是删除Xcode存档步骤,以及然后在同一地点添加一个新的。