手动更改 $(AppIdentifierPrefix) 属性?

Posted

技术标签:

【中文标题】手动更改 $(AppIdentifierPrefix) 属性?【英文标题】:Changing manually $(AppIdentifierPrefix) property? 【发布时间】:2013-07-04 15:01:14 【问题描述】:

我在苹果商店上传了应用程序。现在我正在开发更新版本。但是在处理现有项目时,我创建了不同名称的新项目。完成后,我更改了名称和包标识符以匹配现有应用程序。

我尝试上传应用程序进行试飞,但出现错误

"Invalid IPA: The keychain-access-group in the embedded.mobileprovision and your binary don't match."

所以我开始上网寻找答案......我想出的是启用权利。我做了,但无济于事......然后我编辑了权利,从这个改变:

$(AppIdentifierPrefix)com.xxxx

到这里:

12HJ2312.com.xxxx (the number is number of prefix from developer portal)

它成功了,我可以上传。世界又好了。或者是吗?我仍然不明白为什么我必须改变这个。从哪里来

$(AppIdentifierPrefix)

是红色的吗?我认为是钥匙串中的红色,但似乎不是,因为钥匙串中的值与我输入的值相同。那么我如何才能看到这个值,以及它在哪里绘制它的内容呢?

【问题讨论】:

【参考方案1】:

应用标识符前缀在您使用的配置文件中指定。在 finder 中找到配置文件。为此,在 Xcode 中,转到 Window>Organizer。在管理器中,右键单击配置文件并选择“在 Finder 中显示配置文件”)。在 TextEdit 或其他文本编辑器中打开文件,您会在中间某处看到与此类似的内容(搜索“权利”)。

<key>Entitlements</key>
<dict>
    <key>application-identifier</key>
    <string>A1B2C3D4E5.com.example.*</string>
    <key>get-task-allow</key>
    <false/>
    <key>keychain-access-groups</key>
    <array>
        <string>A1B2C3D4E5.*</string>
    </array>
</dict>

本例中的应用标识符前缀为 A1B2C3D4E5

【讨论】:

有点晚了,但可以在以下答案中找到更好的答案:***.com/a/28714850/774691 命令security cms -Di xx.mobileprovision会将这些信息输出为plist文件。【参考方案2】:

正如艾哈迈德回答的旁注:

$AppIdentifierPrefix 的值为"A1B2C3D4E5."

所以 OP 的原始问题是

$AppIdentifierPrefix.com.xxx 的计算结果为 A1B2C3D4E5..com.xxx,这与您的个人资料所说的不符。

【讨论】:

【参考方案3】:

这在 Xcode 5 中发生了变化。我是这样做的:

在 Mac 上打开 Keychain Access 应用程序。为开发者构建寻找“iPhone 开发者”证书,或为 ad-hoc 和 App Store 构建寻找“iPhone 分发”证书。

如果有多个证书,您可以通过查看项目 Build Settings 中的 Code Signing Identity 字段来找到您在 Xcode 中使用的证书。它可能会说“ios 开发人员”。单击它,它将列出“钥匙串中的身份”。这应该可以让您了解您实际使用的身份。

返回 Keychain Access,选择证书(例如“iPhone Developer”),然后单击窗口底部的“i”按钮。几秒钟后将弹出另一个窗口,其中包含证书信息。查看详细信息部分,您将看到“组织单位”。如果一切正常,该 ID 值将与您的 $(AppIdentifierPrefix) 相同,并且对于开发人员和分发证书也应该相同。此外,“iPhone Distribution”证书的标题中应该有相同的 ID。

【讨论】:

以上是关于手动更改 $(AppIdentifierPrefix) 属性?的主要内容,如果未能解决你的问题,请参考以下文章

手动更改 HLS 带宽?

手动更改 $(AppIdentifierPrefix) 属性?

npm start:手动刷新浏览器以反映更改

仅在报告中手动更改员工部门

如果我更改某些属性,是不是需要手动保存 NSFetchedResultsController 的 managedObjectContext?

动态更改 Apache 服务器端口(不是手动,通过编程)