有没有办法在构建阶段自动将自定义值写入bundle的.plist?

Gru*_*kes 4 xcode xcodebuild agvtool ios

我正在使用Jenkins建立一个CI系统,并且正在使用agvtool在构建时碰撞和设置营销和技术版本.

除了在构建时设置版本控制之外,在.plist中设置几个自定义值非常有用.

这可能吗?

Jam*_*ter 10

您可以通过利用"预执行"选项来运行脚本,从而在构建时编辑Info.plist.

在此输入图像描述

这是一个示例脚本,它增加了Plist中名为UserDefinedVersionNumber的Key

#!/bin/sh

#Grabs info from plist
plist=$SRCROOT"/"$INFOPLIST_FILE
currentBuild=`/usr/libexec/PlistBuddy -c "Print :UserDefinedVersionNumber" "$plist"`

#And changes it before writing out the plist again
if [ -z "$currentBuild" ]
then
    currentBuild=1
    /usr/libexec/PlistBuddy -c "Add :UserDefinedVersionNumber string $currentBuild" "$plist"

else
    currentBuild=$(($currentBuild + 1));
    /usr/libexec/PlistBuddy -c "Set :UserDefinedVersionNumber $currentBuild" "$plist"
fi
Run Code Online (Sandbox Code Playgroud)

您应该可以直接在该小框中键入脚本,但我发现编辑和维护它可能会很麻烦,尤其是对于共享脚本.