如何读取 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?