供应配置文件变量.pbxproj
缺少在本建议:https://github.com/KrauseFx/fastlane/blob/master/docs/CodeSigning.md供应配置文件变量.pbxproj
我打开我的项目的project.pbxproj
和搜索这样的说法 -
PROVISIONING_PROFILE = "";
奇怪的是没有定义的变量配置文件。我确保在xCode的构建设置下设置为automatic
。我也检查了其他几个项目,这样的声明失踪了。这是什么造成的?另外,如果我手动添加语句PROVISIONING_PROFILE = "";
,我应该将它放在project.pbxproj
文件中。
缺乏的PROVISIONING_PROFILE
是自动的等效 - 有这个值设置到任何东西,但空(该值将是一个UUID)表示您打算使用UUID匹配值为PROVISIONING_PROFILE
的特定供应配置文件。
在大多数情况下,您希望使用自动设置,该设置将显示为空行PROVISIONING_PROFILE
行或不存在该行。自动允许您更新,下载和安装更新版本的供应配置文件,而无需每次添加新测试设备时更新构建配置,启用新的基于授权的服务,或者只需重新发布现有配置文件。
供应配置文件以.mobileprovision的形式存储在磁盘上,缺省排序顺序为字母。当使用自动,以下规则来选择配置文件与签署 - 匹配胜第一规格:
- 型材用显式的AppId(com.mycompany.mydivision.myapp)精确匹配当前项目的AppID
- 配置文件使用通配符(com.mycompany.mydivision。*)APPID匹配反向DNS风格的项目APPID
- 配置文件是纯通配符(*)
如果必须使用时间最长的组件一个特定的配置文件,请记住每次你在证书,身份和配置文件工具中编辑配置配置文件,您将下载配置配置文件的新版本 - 此配置文件的UUID将有所不同,因此每次进行更改时都需要更新您的配置设置。如果您与开发团队一起工作,只需将新开发人员证书添加到供应配置文件中即可生成新的UUID,并可能导致团队中的一个或多个成员出现代码签名错误。
但是为什么有些项目根本没有'PROVISIONING_PROFILE'变量,有些项目有这样的空白项目:'.pbxproj'中的'PROVISIONING_PROFILE =“”;',尽管在两种情况下都是“自动”。 –
这取决于构建配置如何更改;将其设置为明确的值会将条目添加到项目中,然后设置回自动将将该值清空。对于手动注入该设置密钥的开发人员,行为是不同的。最终的结果是,在当前的Xcode发货版本中,省略的键或空白值都被视为自动。 Apple一如既往,保留随时更改含义的权利! –
查找以XCBuildConfiguration
开头的部分。你需要在你的项目中添加它为每个版本的配置:
/* Begin XCBuildConfiguration section */
8C822CD8279123D91163DD34 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "";
CODE_SIGN_IDENTITY = "iPhone Distribution: Company Name, Inc";
"CODE_SIGN_IDENTITY[sdk=iphoneos4.2]" = "iPhone Distribution: Company Name, Inc";
...
PROVISIONING_PROFILE = "";
"PROVISIONING_PROFILE[sdk=iphoneos4.2]" = "";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = "Release";
};
此链接将帮助你。 http://stackoverflow.com/questions/1760518/codesign-error-provisioning-profile-cannot-be-found-after-deleting-expired-prof –
@NimishaPatel是的,已经看过它。在我的情况下,变量在'.pbxproj'文件中完全不存在。 –