Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从Jenkins内部获取CbundLeverVersion以将其用作变量,类似于${APP_VERSION}_Ios_Xcode_Jenkins_Continuous Integration_Plist - Fatal编程技术网

Ios 从Jenkins内部获取CbundLeverVersion以将其用作变量,类似于${APP_VERSION}

Ios 从Jenkins内部获取CbundLeverVersion以将其用作变量,类似于${APP_VERSION},ios,xcode,jenkins,continuous-integration,plist,Ios,Xcode,Jenkins,Continuous Integration,Plist,我想做的是能够为Jenkins构建的提交添加一个标记。现在我用Jenkins版本号标记提交,但我还想添加应用程序版本,如前面的Info.plist CbundLeverVersion中所列 我想知道的是,如何使用Jenkins或其他方法获取该值,并将其用作Jenkins中的参数/变量 我见过使用plistbuddy来设置这个值的引用,所以我假设有一种方法可以使用它来获得相同的值。但我不知道如何以及如何在詹金斯使用它 为了进一步澄清,我正在使用Jenkins中的GitPublisher创建一个标

我想做的是能够为Jenkins构建的提交添加一个标记。现在我用Jenkins版本号标记提交,但我还想添加应用程序版本,如前面的Info.plist CbundLeverVersion中所列

我想知道的是,如何使用Jenkins或其他方法获取该值,并将其用作Jenkins中的参数/变量

我见过使用plistbuddy来设置这个值的引用,所以我假设有一种方法可以使用它来获得相同的值。但我不知道如何以及如何在詹金斯使用它


为了进一步澄清,我正在使用Jenkins中的GitPublisher创建一个标记,并以这种格式推送它

jenkinsbuild-$BUILD_编号

这会在git中的commit上产生一个标记,如-jenkinsbuild-303


我想要的是,假设我的应用程序目前的版本是3.5,那么标签上写着-jenkinsbuild-3.5-303

我设法从@agy链接到的答案中拼凑出一个解决方案。以下是我所做的:

  • 在Jenkins配置的构建部分中,我在Xcode步骤之后的“ExecuteShell”步骤中添加了以下两行代码:

    APP_VERSION=$(/usr/libexec/PlistBuddy -c "Print :CFBundleShortVersionString" "path to your plist")    
    echo APP_VERSION=$APP_VERSION > appversion.properties;
    
  • 在那之后,我添加了一个“注入环境变量”步骤(我认为这是EnvInject插件的一部分),在属性文件路径字段中添加了“appversion.properties”

  • 完成此操作后,APP_VERSION现在作为环境变量在后续的shell命令步骤中可用


  • 你安装了Xcode插件吗?是的,我已经安装好了。你介意举个例子吗?我不明白你想做什么。我添加了一些额外的东西,希望能有所帮助。我不想做的是更改plist本身中的值,只是读取它们并能够使用它们创建选项卡,就像我在上面使用$BUILD_NUMBER一样。我想您可以在这里找到答案: