如何在 info.plist 文件 xcode ios 中使用 Code 值

Posted

技术标签:

【中文标题】如何在 info.plist 文件 xcode ios 中使用 Code 值【英文标题】:How to use Code value in the info.plist file xcode ios 【发布时间】:2019-02-18 11:57:29 【问题描述】:

我想在 info.plist 文件中使用一些自定义常量来全局使用它 例如

<key>FacebookAppID</key>
<string>$(my_custom_constant)</string>
    如何使这个常量? 如何通过选择调试和发布模式来区分它。例如FacebookAppID 对于调试模式是“abc”,对于发布模式是“xyz”。

【问题讨论】:

info.plist 在运行时是只读的,你的目标是什么? 我在我的应用程序中使用了 facebook API,我在 fb 上制作了 2 个差异应用程序,一个用于调试,另一个用于发布。每当我进行发布构建时,我也必须在 info.plist 中进行更改。我只想一键构建发布版本 【参考方案1】:

在 info.plist 中设置您的自定义变量,如下所示。我这里以“HockeyAppID”为例。

接下来,在“用户定义”下的“构建设置”中为您的情况下的调试和发布配置添加一个变量,如下所示。在这里,我有自己的四种不同的配置。

如您所知,不同的配置值将在运行时根据方案中的设置加载。 为了从 info.plist 访问 HockeyAppId 以进行调试/发布配置,请执行以下操作。

 enum InfoPlistKey 
   static let hockeyappID = "HockeyAppID"
 

 struct AppSettings 

   private static var infoDict: [String: Any] 
      if let dict = Bundle.main.infoDictionary 
          return dict
       else 
          fatalError("Info Plist file not found")
      
   

   static let hockeyAppID = infoDict[InfoPlistKey.hockeyappID] as! String
 

现在,您可以从 Info.plist 中访问 HockeyAppId 值,

let identifier = AppSettings.hockeyAppID

如有任何问题,请告诉我。

【讨论】:

【参考方案2】:

您可以通过在构建设置中将其作为“用户定义的设置”添加到您的目标来创建该变量。然后,您可以为每个构建配置将变量值设置为不同的值。

请参阅随附的屏幕截图。您可以忽略我的 Beta Prod 和 Beta Test 配置,因为它们可能不适用于您的情况。

【讨论】:

我做了:“然后,您可以为每个构建配置将变量值设置为不同的值。”因此,为您的 Debug 配置设置为 2,为您的 Release 配置设置为 3。

以上是关于如何在 info.plist 文件 xcode ios 中使用 Code 值的主要内容,如果未能解决你的问题,请参考以下文章

如何告诉 Xcode 我的 info.plist 和 .pch 文件在哪里

iOS,Xcod7/8,iOS使用修改点

如何在 info.plist 文件 xcode ios 中使用 Code 值

Xcode 项目中的两个 info.plist 文件如何工作?

如何本地化iOS info.plist文件中的字符串?

如何在 info.plist 文件中为特定游戏关卡中保存的颜色设置创建条目?