iphone - 是否可以将用户定义的 XCode build设置导出到环境变量

标签 iphone ios xcode

我已经为各种配置做了一些build设置,例如

Build settings例如

我可以像这样在各种文件(例如 info.plist)中访问它们:

${MYTESTSETTING}

然而,是否有可能在命令行环境中获取值?例如在 Jenkins 的 xcodebuild 之后

我试过了

echo ${MYTESTSETTING}

echo $MYTESTSETTING

最佳答案

xcodebuild -showBuildSettings

显示所有build设置,包括用户定义的设置。示例:

$ xcodebuild -configuration Debug -showBuildSettings | grep MYTESTSETTING
    MYTESTSETTING = DebugValue
$ xcodebuild -configuration Release -showBuildSettings | grep MYTESTSETTING
    MYTESTSETTING = ReleaseValue

要将这些变量放入当前 shell 的环境中,您必须解析此输出。例如,这可以使用 Perl 脚本(或许多其他脚本语言)来完成。

使用以下内容创建一个 Perl 脚本“exportsettings.pl”:

#!/usr/bin/perl
open(FH, "xcodebuild -configuration Release -showBuildSettings|");
while(<FH>) {
    if (/\s*(\w+)\s*=\s*(.*)$/) { # Search for <key> = <value>
        $key = $1; $value = $2;
        print "export $key='$value'\n";
    }
}
close(FH);

现在可以运行命令了

$ eval `perl exportsettings.pl`

从命令行,并且(几乎)所有build设置都在环境中。 (会有一些错误信息,例如“UID: readonly variable”)。

如果您只需要在环境中使用您定义的设置,您可以使用唯一的前缀(例如“MY”)并更改行

    if (/\s*(\w+)\s*=\s*(.*)$/) { # Search for <key> = <value>

    if (/\s*(MY\w+)\s*=\s*(.*)$/) { # Search for MY<key> = <value>

关于iphone - 是否可以将用户定义的 XCode build设置导出到环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13826375/

相关文章:

ios - 从多个 Storyboard子类化 UIViewController

objective-c - 第二次启动应用程序时使用不同的起始 View

c# - 如何使用 Monotouch.Dialog 设置背景图片

iphone - 如何在应用程序的设置包中显示应用程序版本修订?

iphone - 如何在imagepicker中设置imagepicker.tag = value

iphone - 在 NSTimer 上重新加载 TableView 部分

ios - 如何在 iPad 上打造无边框 Swift Playgrounds?

iphone - 如何缩小 UITableView 中单元格标题和单元格文本之间的间距

带有 NSString 问题的 iPhone 内存管理

iphone - 音频文件不在 iPhone/iOS 中播放