Ios 生成时未解析$(AppIdentifierPrefix)
.授权文件中的$(AppIdentifierPrefix)不会被实际的AppIdentifierPrefix替换。有人能解释一下这个问题吗?下面是我对Ios 生成时未解析$(AppIdentifierPrefix),ios,xcode,Ios,Xcode,.授权文件中的$(AppIdentifierPrefix)不会被实际的AppIdentifierPrefix替换。有人能解释一下这个问题吗?下面是我对YourApp.Rights文件的理解,当您将iCloud或Game Center等功能添加到应用程序时,该文件会添加到您的项目中 (我希望看到一些指向官方文档的指针……如果有的话。) 这些权利文件的用途是什么? 因此,首先,.authentications仅在您的项目中用于构建过程。它不应该在最终的.app产品中结束。如果是,请选择.authen
YourApp.Rights
文件的理解,当您将iCloud或Game Center等功能添加到应用程序时,该文件会添加到您的项目中
(我希望看到一些指向官方文档的指针……如果有的话。)
这些权利文件的用途是什么?
因此,首先,.authentications
仅在您的项目中用于构建过程。它不应该在最终的.app
产品中结束。如果是,请选择.authentications
文件,并在文件检查器中清除其目标成员资格。(这就是Xcode在没有任何目标成员身份的情况下实际生成这些文件的方式)
那么,.authentications
文件的用途是什么呢?它是构建过程的一部分,在构建过程中,它以两种形式被获取、处理并放入最终的应用程序包中:
- 第一:
文件的内容嵌入到权利
文件中。这是一个顶部带有二进制签名的已签名属性列表,但如果在文本编辑器中打开它,您会看到一个嵌入式.mobileprovision
部分,其中应该包含已处理的权限权限
- 第二:还有一个名为
的存档扩展授权.xcent
授权文件的副本。这基本上与原始的
文件相同,只是它已被处理权利
权利
文件的处理在任何地方都有文档记录。肯定有一个预处理器在其上运行,因此像$(AppIdentifierPrefix)
之类的内容将替换为实际值。但是,这似乎与用于Info.plist
文件的不同
$(AppIdentifierPrefix)
与您在Xcode项目中配置的团队标识符相同。您可以在标识部分的目标的常规设置下找到已配置的团队。如果team设置为None,那么将不会设置$(AppIdentifierPrefix)
最后回答您的问题:如果您查看我上面提到的两个文件,仍然看到$(AppIdentifierPrefix)
未正确替换,请确保您的项目配置了团队标识符
Xcode如何知道要为您的目标使用哪些授权文件?
在生成设置中,您可以查看代码签名权限设置,以了解Xcode在每个生成配置中使用的文件。调试和发布通常使用相同的授权文件,但您可以更改它
(例如,对于iOS版Firefox,我们有夜间版、极光版、测试版和发布版的构建配置。这些都有不同的权限文件。我们有不同权限文件的原因是我们无法使。权限
预处理器识别设置,如$(产品名称:rfc1034identifier)
-我很想知道是否有办法做到这一点,因为这将使我们的构建更加简单。)
什么工具处理权利
文件?
不完全确定。但是如果您查看构建日志,您将看到一些对内置ProductPackageUtility
工具的引用。这似乎是一个内部Xcode命令,而不是命令行工具。所以这不是很有用
现在你几乎知道了我所知道的关于的所有事情
(我很乐意发表评论,并将此答案转化为权利文件的最终指南-我认为围绕这些文件存在很多困惑)您正在查看内置产品中的哪个文件来确认这一点?我正在查看.app产品中包含的.authorights文件。在我的测试中,使用Xcode 8.0,您似乎可以使用任何构建设置值来预处理.authorities
文件(就像在Info.plist
中一样)