如何使用 info.plist 文件中的代码值 xcode ios

How to use Code value in the info.plist file xcode ios

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

<key>FacebookAppID</key>
<string>$(my_custom_constant)</string>
  1. 如何使这个常量?
  2. 如何通过选择调试和发布来区分它mode.e.g。 FacebookAppID 在调试模式下为 "abc",在发布模式下为 "xyz"。

您可以通过在构建设置中将变量作为 "User-Defined Setting" 添加到您的目标来创建变量。然后,您可以为每个构建配置将变量值设置为不同的值。

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

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

接下来,在 "User-Defined" 下的 Build Settings 中添加一个变量,用于您的案例中的 Debug 和 Release 配置,如下所示。在这里,我有我自己的四种不同的配置。

如你所知,运行时会根据scheme中的设置加载不同的配置值。 为了从 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

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