【问题标题】:Xcode: How to add key into generated Info.plist file (or merge generated and existing Info.plist)?Xcode:如何将密钥添加到生成的 Info.plist 文件中(或合并生成的和现有的 Info.plist)?
【发布时间】:2022-01-12 12:42:11
【问题描述】:

我一直在我的项目中使用Info.plist,但最近我注意到新生成的新项目不再包含它们,而Info.plist 是Xcode 在构建时从目标的Info.plist Values 部分生成的Build settings.

我喜欢这个,因为它允许我从同一个文件夹中发布两个项目(测试版和非测试版),而无需为每个项目修改 Info.plist 的特殊构建步骤。

但是,我注意到:

  1. 构建设置中缺少许多 Info.plist 键(例如 ITSAppUsesNonExemptEncryption 或 NSLocationAlwaysUsageDescription/NSLocationUsageDescription/NSLocationWhenInUseUsageDescription),因此我无法从那里设置它们。悬停时似乎也没有任何+ 符号,这可以让我在该部分添加另一个键。

  2. 而将INFOPLIST_KEY_ITSAppUsesNonExemptEncryption = NO; 添加到.pbxproj 文件中的方式(我在某处发现有文档记录)不再有效。

有没有办法在生成的Info.plist 中添加额外的密钥?或者,有没有办法在文件系统中同时拥有Info.plist 文件和构建设置中的Info.plist Values 部分,并使Xcode 在构建期间合并它们?

该部分的外观如下:

【问题讨论】:

  • 因为你没有标记这个 [swiftui],我假设它是 UIKit。刚刚创建(在 Xcode 13.1 中)两个新项目 - 是的,如果它是 SwiftUI,您在项目资源管理器中不再有 info.plist 文件。但是 - 如果你创建一个“故事板”项目(实际上是一个 UIKit 项目),你会得到一个。

标签: ios swift xcode swiftui


【解决方案1】:

所以,this 很有帮助(谢谢Andrew!),但我从实验中得到的核心见解是:

  1. Xcode 不想让你在不属于它们的地方输入无效的键。

  2. 构建设置只有基本属性,其他任何内容都属于“信息”部分。编辑它会创建一个新的Info.plist file,只有更改的属性,然后将与构建设置中的 info.plist 键合并(我找不到构建顺序的文档)。

  3. 一些设置,例如独立手表应用程序的ITSAppUsesNonExemptEncryption 无处可去。 苹果大多放弃了独立的手表应用程序,它们周围有大量的错误,他们不在乎。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    相关资源
    最近更新 更多