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

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

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

【问题讨论】:

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

标签: ios swift xcode 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。
    猜你喜欢
    • 1970-01-01
    • 2021-10-18
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    相关资源
    最近更新 更多