- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
.entitlements 文件中的 $(AppIdentifierPrefix) 未被替换为实际的 AppIdentifierPrefix。有人可以阐明这个问题吗?
最佳答案
所以这是我对 YourApp.entitlements
的理解当您将 iCloud 或 Game Centre 等功能添加到您的应用程序时,该文件会添加到您的项目中。
(我很乐意看到一些指向官方文档的指针......如果有的话。)
这些授权文件有什么用?
所以首先,.entitlements
仅在您的项目中用于构建 过程。它不应该在最后的 .app
中结束。产品。如果是,请选择 .entitlements
文件并在文件检查器中,清除它的目标成员资格。 (这就是 Xcode 在没有任何目标成员身份的情况下实际生成这些文件的方式)
那么 .entitlements
是什么?文件是用来做什么的?它是构建过程的一部分,它被获取和处理并以两种形式放入您的最终应用程序包中:
首先:.entitlements
的内容文件嵌入在 embedded.mobileprovision
中文件。这是一个带有二进制签名的签名属性列表,但如果您在文本编辑器中打开它,您会看到有一个 <key>Entitlements</key>
。应该在其中包含已处理权利的部分。
第二:还有一份.entitlements
名为 archived-expanded-entitlements.xcent
的文件.这与原始文件基本相同 .entitlements
文件除了它已经被处理。
.entitlements 文件中可以使用哪些预处理器值
我不认为 .entitlements
的处理文件记录在任何地方。肯定有一个预处理器在它上面运行,所以像 $(AppIdentifierPrefix)
这样的东西被替换为实际值。但是,这似乎与用于 Info.plist
的那个不同。文件。
$(AppIdentifierPrefix)
与您可能已在 Xcode 项目中配置的团队标识符相同。您可以在Identity 部分的目标General 设置下找到已配置的Team。如果团队设置为 None 那么有一个很好的变化 $(AppIdentifierPrefix)
不会被设置。
So to finally answer your question: if you look at those two files that I mentioned above, and you still see the
$(AppIdentifierPrefix)
is not correctly substituted, make sure your project has a Team Identifier configured.
Xcode 如何知道要为您的目标使用什么授权文件?
在您的build设置中,您可以查看代码签名授权 设置以找出 Xcode 为每个构建配置使用的文件。通常 Debug 和 Release 使用相同的权利文件,但您可以更改它。
(例如,对于 Firefox for iOS,我们有Nightly、Aurora、Beta 和Release 的构建配置> 构建。这些都有不同的权利文件。我们有不同权利文件的原因是因为我们无法使 .entitlements
预处理器识别像 $(PRODUCT_NAME:rfc1034identifier)
这样的设置 - 我很想听听是否有办法那是因为这将使我们的构建更简单。)
什么工具处理 .entitlements
文件?
不完全确定。但是如果你查看构建日志,你会看到一些对 builtin-productPackagingUtility
的引用。工具。这似乎是一个内部 Xcode 命令,而不是实际作为命令行工具存在的东西。所以这不是很有用。
现在你几乎了解了我所知道的关于 .entitlements
的一切文件:-)
(我喜欢发表评论并将此答案变成权利文件的权威指南——我认为它们周围存在很多混淆)
关于ios - $(AppIdentifierPrefix) 在构建期间未解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29195849/
.entitlements 文件中的 $(AppIdentifierPrefix) 未被替换为实际的 AppIdentifierPrefix。有人可以阐明这个问题吗? 最佳答案 所以这是我对 Your
我在苹果商店上传了应用程序。现在我正在开发更新版本。但不是在现有项目上工作,我创建了不同名称的新项目。完成后,我更改了名称和包标识符以匹配现有应用。 我尝试上传应用程序来试飞,但出现错误 "Inval
TeamIdentifierPrefix 和 Appidentifierprefix 有什么区别。我有一个启用了 icloud(TeamIdentifierPrefix) 和 keychain(App
我是一名优秀的程序员,十分优秀!