我正在尝试执行以下操作:
我可以为此编写一个shell脚本吗?
如果有人可以指导我实现这一点,那就太好了.
Vác*_*vík 20
可能最简单的方法是使用PlistBuddy.我有一个Run Script阶段,如下所示:
BUILD_NUMBER=`git rev-list HEAD --count`
INFO_PLIST="$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH"
if [ -f "$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH" ] ; then
oldversion=`/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "$INFO_PLIST"`
fi
if [ "$BUILD_NUMBER" != "$oldversion" ] ; then
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$INFO_PLIST"
fi
Run Code Online (Sandbox Code Playgroud)
(请注意,从Xcode 6开始,您必须在Copy Bundle Resources阶段之后运行它,因为Info.plist
在此之前不会将其复制到目标位置,并且PlistBuddy将失败.)
编辑01/17:更新以避免不必要的复制或目标签名.你不想触摸Info.plist,除非真的发生了变化,否则Xcode会将它(以及目标)视为已修改.检查以前的值CFBundleVersion
可以显着加快构建速度 - 它在noop构建上节省了几秒钟.
Pey*_*loW 15
是的你可以.我会分三步完成:
${MY_COOL_SETTING}
.@PeyloW提供了一种方法.另一种方法是添加Run Script构建步骤.在该步骤中,您可以随意重写Info.plist.我一直这样做来设置svnversion.
我建议将脚本放在一个文件中,然后放入. myscript.sh
Run Script阶段.这比将整个脚本直接放在Xcode中更容易理解和维护.
归档时间: |
|
查看次数: |
18161 次 |
最近记录: |