如何读取 info.plist 中的环境变量?

Posted

技术标签:

【中文标题】如何读取 info.plist 中的环境变量?【英文标题】:How to read environment variables in info.plist? 【发布时间】:2017-04-20 07:40:36 【问题描述】:

我正在终端中设置一个变量

export VAR=1.0.0

我必须将它从 ~/.bash_profile 读取到 info.plist 中,例如:

<key>CFBundleShortVersionString</key>
<string>VAR</string>

这样我就可以进行自动化构建了。有没有办法读取变量?

【问题讨论】:

也许会帮助你***.com/questions/9530075/… 现在我正在尝试读取 ~/.bash_profile 变量并将其添加到 info.plists 中。不确定上述示例是否有效,但我会尝试更多方法。感谢您的帮助! 【参考方案1】:

info.plist 中你引用了变量:

<key>CFBundleShortVersionString</key>
<string>$(VAR)</string>

然后,当您从终端构建项目时,您会为 VAR 注入值:

xcodebuild build VAR=123 -project myProject.xcodeproj -target myTarget -sdk iphonesimulator

或者如果环境中设置的变量:

xcodebuild build VAR=$VAR -project myProject.xcodeproj -target myTarget -sdk iphonesimulator

【讨论】:

【参考方案2】:

请参考此链接,

PLIST Variables

$(PRODUCT_BUNDLE_IDENTIFIER) 和 $(PRODUCT_NAME) 来自构建设置。

$EXECUTABLE_NAME 是以下内容的串联:

$EXECUTABLE_PREFIX、$PRODUCT_NAME 和 $EXECUTABLE_SUFFIX。

希望这会对你有所帮助。

【讨论】:

我意识到我没有在我的问题中指定所有内容,所以我进行了一些编辑。也许你知道方法。 问题是关于构建环境中的环境变量,而不是关于在 info.plist 中引用其他变量或值。【参考方案3】:

您可以使用bundle 访问Info.plist

 let v = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String

【讨论】:

访问info.plist与问题无关。

以上是关于如何读取 info.plist 中的环境变量?的主要内容,如果未能解决你的问题,请参考以下文章

Mobilefirst cli 构建失败:读取 info.plist 文件 1 字节 UTF-8

从 iOS 的 UITests 中读取 Info.plist?

从 Info.plist 读取版本

Info.plist:由于格式不正确,无法读取数据

如何在 react-native iOS 应用程序中运行时读取 Info.Plist?

如何在 react-native iOS 应用程序中运行时读取 Info.Plist?