有没有一种方法可以在构建阶段自动将自定义值写入bundle的.plist?

时间:2012-12-03 19:05:45

标签: ios xcode xcodebuild agvtool

我正在使用Jenkins建立CI系统,并使用agvtool进行颠覆和设置营销&构建时的技术版本。

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

这可能吗?

1 个答案:

答案 0 :(得分:10)

您可以在构建时编辑Info.plist,方法是利用“预操作”选项来运行脚本。

enter image description here

这是一个示例脚本,用于增加Plist中名为UserDefinedVersionNumber的键

#!/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

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