【问题标题】:Provisioning Profile variable missing in .pbxproj.pbxproj 中缺少配置文件变量
【发布时间】:2015-07-20 08:03:24
【问题描述】:

如此建议:https://github.com/KrauseFx/fastlane/blob/master/docs/CodeSigning.md

我打开了我项目的project.pbxproj 并搜索了这样的语句-

PROVISIONING_PROFILE = "";

奇怪的是,没有为配置文件定义变量。我确保在 xCode 的构建设置下设置为automatic。我也检查了其他几个项目,缺少这样的声明。这是什么原因造成的?另外,如果我想手动添加语句PROVISIONING_PROFILE = "";,我应该将它放在project.pbxproj 文件中的哪个位置。

【问题讨论】:

标签: ios xcode xcode6 provisioning-profile ios-provisioning


【解决方案1】:

PROVISIONING_PROFILE 的缺失相当于 Automatic - 将此值设置为除空以外的任何值(该值将是 UUID)表示您打算使用 UUID 与 PROVISIONING_PROFILE 的值匹配的特定配置文件.

在大多数情况下,您希望使用“自动”设置,该设置将显示为空的 PROVISIONING_PROFILE 行或不存在该行。 Automatic 允许您更新、下载和安装较新版本的配置文件,而无需在每次添加新测试设备、启用新的基于权利的服务或重新发布现有配置文件时更新构建配置。

配置文件以 .mobileprovision 的形式存储在磁盘上,默认排序顺序是字母顺序。使用自动时,以下规则用于选择要签名的配置文件——匹配的第一个配置文件获胜:

  • 具有显式 AppId (com.mycompany.mydivision.myapp) 的配置文件与当前项目的 AppID 精确匹配
  • 带有通配符 (com.mycompany.mydivision.*) AppId 的配置文件与反向 DNS 样式项目 AppID 的最长组件匹配
  • 纯通配符 (*) 的配置文件

如果您必须使用特定的配置文件,请记住,每次您在证书、身份和配置文件工具上编辑配置文件时,您都会下载新版本的配置文件 - 此配置文件的 UUID 会有所不同因此,每次进行更改时,您都需要更新构建设置。如果您与开发团队合作,只需将新开发人员的证书添加到配置文件中就会导致生成新的 UUID,并可能导致团队中的一名或多名成员出现代码签名错误。

【讨论】:

  • 但是为什么有些项目根本没有PROVISIONING_PROFILE 变量,而有些项目有这样的空白条目 - .pbxproj 中的PROVISIONING_PROFILE = "";,尽管在这两种情况下设置都是automatic
  • 这取决于如何更改构建配置;将其设置为显式值会将条目添加到项目中,然后设置回自动将清除该值。对于那些手动注入该设置键的开发人员,行为是不同的。最终结果是,在当前 Xcode 的发布版本中,省略的键或空白值都被视为自动。 Apple 一如既往地保留随时更改该含义的权利!
【解决方案2】:

查找以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";
    };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多