【问题标题】:Read User-Defined Settings from custom .plist file从自定义 .plist 文件中读取用户定义的设置
【发布时间】:2020-03-17 13:25:50
【问题描述】:

我应该为不同的方案使用不同的 API 密钥(如DebugQARelease)。

我想为此使用自定义的 .plist 文件 (Config.plist)。由于我的项目架构,没有其他方式。

我在Build Settings中配置了User-Defined Settings

我按照以下步骤操作:

  • 创建一个名为MY_API_KEY的自定义用户定义设置,

  • 将 API 密钥添加到不同的方案中,

  • 创建一个新的Config.plist 的用户定义设置,用于从Info.plist 读取,

  • CONFIG_FILEInfo.plist

  • MY_API_KEY 写入自定义plist (Config.plist),

所以我想从Config.plist 中读取MyAPIKey 值,但它以字符串形式返回${MY_API_KEY}

预期结果为"asdfsadf"(来自用户定义的设置的值)。


注意:

我没有发布从 plist 读取值的方法,因为我正在使用我的自定义服务来读取 plist。

【问题讨论】:

  • 我有完全相同的问题和疑问,似乎自定义 .plist 文件需要某种权限 Info.plist 默认情况下已经拥有。你找到解决方案了吗?自定义 .plist 文件在识别 ${REFERENCE_VARIABLES} 时缺少什么?

标签: swift xcode plist swift5 info-plist


【解决方案1】:

首先,你应该使用圆括号而不是花括号

所以改变这个:

${MY_API_KEY} 
${CONFIG_FILE} 

到这里:

$(MY_API_KEY)
$(CONFIG_FILE)

其次,为什么不为不同的环境使用不同的info.plist 文件?

您可以使用info.plist File 属性为不同的环境分配不同的plist 文件:

因此,您可以在每个环境中拥有完全自定义的 plist 文件。

【讨论】:

  • 感谢您的回答和建议,但我已经为不同的环境提供了不同的 plist。但是我的项目会很大,我不需要使用不同的 plist。我想删除我的所有 plist(我为不同的环境创建了这些)并创建一个 plist 用于从构建设置(用户定义的设置)中读取值
  • 你试过括号吗? @emrcftci
  • 是的,我做到了。但它不起作用,因为这与括号和花括号无关。您可以通过此链接检查括号和大括号的区别 -> lists.apple.com/archives/xcode-users/2005/Dec/msg00480.html
猜你喜欢
  • 2016-03-08
  • 1970-01-01
  • 1970-01-01
  • 2016-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-17
相关资源
最近更新 更多