权利与配置不匹配
Posted
技术标签:
【中文标题】权利与配置不匹配【英文标题】:Entilements not matching provisioning 【发布时间】:2012-03-08 12:46:29 【问题描述】:最近我在内部部署应用程序时遇到了问题 (企业开发人员计划)报告某些权利 值不是配置文件中指定的值。 我开始研究这个问题,发现当然, 值不匹配:
.mobileprovision 文件的内容:
(通过运行security cms -D -i <mobileprovision file>
提取)
<key>application-identifier</key>
<string>M7X5D8MA6U.some.masked.Identifier</string>
<key>com.apple.developer.ubiquity-container-identifiers</key>
<array>
<string>KNHHJPPHR7.*</string>
</array>
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>KNHHJPPHR7.*</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>M7X5D8MA6U.*</string>
</array>
权利是(提取的运行:codesign -d --entitlements - <app bundle>
)
<key>application-identifier</key>
<string>5R678HMG35.some.masked.Identifier</string>
<key>get-task-allow</key>
<false/>
<key>keychain-access-groups</key>
<array>
<string>5R678HMG35.some.masked.Identifier</string>
</array>
我没有在我的项目中指定任何权利文件,并且 mobileprovision 文件是从门户下载的。
我是否应该使用这些值创建一个 Entitlements.plist 安装程序很高兴还是有一种不那么骇人听闻的方法来解决这个问题? 更重要的是,为什么这只发生在某些版本的 我的应用程序? (其他一些构建很好)
关于如何解决和/或避免此问题的任何其他提示?
我已经尝试过通常的嫌疑人:删除所有配置文件、重新创建配置文件、重新下载证书等......
谢谢!
【问题讨论】:
【参考方案1】:我注意到的是,我没有为该特定应用使用开发配置文件,而是使用 Xcode 生成的团队配置文件。我尝试创建开发配置文件,然后它自行修复。
【讨论】:
【参考方案2】:如果您没有使用 iCloud,请确保您在 Apple 开发者页面上的 Provisioning Profile 没有启用 iCloud。 如果是这样,请禁用 iCloud 并下载新生成的配置文件并重试。 几周前有一个非常相似的问题。
【讨论】:
谢谢,但这不是问题所在。阅读我对问题的回答以获取更多信息!【参考方案3】:如果在进行发布构建时,Xcode 决定使用通配符配置文件,就会发生这种情况。
即使您继续在 Xcode Organizer 中选择正确的配置文件,当您点击 Distribute…
按钮时,Xcode 也会调用 xcrun PackageApplication
,它将配置文件嵌入到您的应用程序中,然后将其退出。它还会非常小心地将从错误的配置文件中收集到的原始不正确权利(如 App ID 前缀、APN 权利)复制到您的新 IPA 中。这可能会无法安装。
我不确定它为什么这样做,可能是因为并非所有权利都来自配置文件。
【讨论】:
以上是关于权利与配置不匹配的主要内容,如果未能解决你的问题,请参考以下文章
权利文件与您的配置文件中指定的不匹配。(0xE8008016)
配置文件与应用程序标识符和钥匙串访问组权利的权利文件值不匹配