就我而言,我的配置文件中的内容:
security cms -D -i ~/Downloads/spolskyDevelop.mobileprovision
...
<key>application-identifier</key>
<string>P5GM95Q9VV.com.dca.spolsky</string>
<key>aps-environment</key>
<string>development</string>
与实际构建的应用程序中的内容有所不同(您可以通过查看Xcode的“日志”选项卡来了解其构建位置)
codesign -d --entitlements - '/Users/drew/Library/Developer/Xcode/DerivedData/spolsky-bdbtdfjeeywhqzccpmmceqvnhgtm/Build/Products/Debug-iphoneos/spolsky-ios.app'
<dict>
<key>application-identifier</key>
<string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
</array>
</dict>
这是真实的,即使在“目前匹配”提示文本守则签名身份指示正确的配置资料-奇怪,是吧?为了使故事变得更怪异,我在运行时已在设备上安装了正确的配置文件,(设置->常规->配置文件)使我相信配置文件是正确的-但回退到通配符ID应用实际启动的时间。
线索是这两个命令的输出有所不同:
Y2X6Z7Z2GR .com.dca。spolsky-ios与P5GM95Q9VV .com.dca。斯波斯基
当我使粗体部分匹配时,斜体部分变为自动匹配。此外,安全性和代码签名的输出是一致的,并且没有更多的aps权利错误。
我的猜测是XCode在我的非通配符ID上使用了通配符样式的匹配。(毕竟,“ spolsky”几乎是“ spolsky-ios”),这解释了“当前匹配”输出。但是构建链中对此有更严格的要求,因此在构建期间它会退回到实际的通配符ID。