Как использовать значение кода в файле info.plist xcode ios - PullRequest
0 голосов
/ 18 февраля 2019

Я хочу использовать некоторые пользовательские переменные в файле info.plist, например,

<key>FacebookAppID</key>
<string>$(my_custom_variable)</string>

, как сделать эту переменную

Во-вторых, я могу добавить какое-то условие к этой переменной, например

if myBuild = debug {
my_custom_variable = 2
}else{
my_custom_variable = 3}

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Установите пользовательскую переменную в info.plist, как показано ниже.В качестве примера я взял «HockeyAppID».

enter image description here

Далее, добавьте переменную в настройках сборки в разделе «Определено пользователем» для конфигурации отладки и выпускав вашем случае, как показано ниже.Здесь у меня есть четыре собственные конфигурации.

enter image description here

Как вы знаете, различные значения конфигурации будут загружаться во время выполнения в зависимости от настроек в схеме.Чтобы получить доступ к HockeyAppId для конфигурации отладки / выпуска из info.plist, выполните следующие действия.

 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
 }

Теперь вы можете получить доступ к значению HockeyAppId из Info.plist как,

let identifier = AppSettings.hockeyAppID

Пожалуйста, сообщите мне в случае каких-либо проблем.

0 голосов
/ 18 февраля 2019

Вы можете создать переменную, добавив ее в качестве «пользовательской настройки» к своей цели в настройках сборки.Затем вы можете установить разные значения переменной для каждой конфигурации вашей сборки.

Пожалуйста, смотрите прикрепленный скриншот.Вы можете игнорировать мои конфигурации Beta Prod и Beta Test, так как они, вероятно, не относятся к вашей ситуации.

enter image description here

...