Xcode 是不是将 plist 隐式转换为二进制格式?

Posted

技术标签:

【中文标题】Xcode 是不是将 plist 隐式转换为二进制格式?【英文标题】:Does Xcode implicitly convert plists's to binary format?Xcode 是否将 plist 隐式转换为二进制格式? 【发布时间】:2012-09-10 19:52:07 【问题描述】:

Xcode 是否在构建过程中将项目中的 plist 隐式转换为二进制?我不认为它是隐含的,但很难确定。

【问题讨论】:

【参考方案1】:

有一个名为“Property List Output Encoding”(又名 PLIST_FILE_OUTPUT_FORMAT)的构建设置,可用于告诉 Xcode 在执行构建时将复制的 plist 转换为不同的格式。默认值是“same-as-input”,因此它不应该进行任何转换,除非您专门将该值更改为其他值。如果您想将您的 plist 转换为二进制,以节省空间和/或加载时间,只需在 Xcode 的目标构建设置中将该设置更改为“二进制”。

【讨论】:

嗯...我怎么知道转换有效?我尝试了这个设置,但是当我在应用程序的管理器中浏览派生数据时,它似乎仍然是 XML 格式。此外,还有另一个设置 APPLY_RULES_IN_COPY_FILES,描述说:“默认情况下,使用“复制文件构建阶段”复制的文件未更改。将此设置为 TRUE 会导致属性列表 (.plist) 和字符串文件按照“指定”进行转换属性列表输出编码'和'字符串文件输出编码'。”但是,我尝试将此设置为 TRUE,但似乎没有任何区别。 @user1459524 这确实有效,无需修改APPLY_RULES_IN_COPY_FILES。 Finder 在 QuickLook 中将其显示为文本表示,但如果您使用 VIM 等文本编辑器打开实际文件,您将看到它是二进制文件。在文件上运行 file 将显示差异(尝试将 PLIST 设置更改为与输入相同) 这个链接对我有帮助:imnotyourson.com/diffable-and-mergeable-localizable-strings too【参考方案2】:

对于所有面临 Localizable.strings binary 格式的人,这里有一个链接帮助了我: link

您将在 Build Settings -> Packaging 部分(带有 All 选项)下找到属性。

【讨论】:

以上是关于Xcode 是不是将 plist 隐式转换为二进制格式?的主要内容,如果未能解决你的问题,请参考以下文章

警告:隐式转换在 xcode 6 中会丢失整数精度

将 Xcode 11 testresult .xcresult 转换为 JUnit?

ARC 不允许将 Objective-C 指针隐式转换为“void *”

我将如何更改此静态数组以从 xCode 中的此 plist 中提取?

Xcode 如何通过故事板隐式设置 rootViewController?

Xcode 无法将内容解析为 info.plist