是的,这与this question非常相关,但我认为这个问题已经足够回答XCode 3.不知道这是否应该合并。XCode 4:插入Subversion版本号在Xcode
所以 - 从那里使用类似的指令,我很久以来就有将编号编码到归档的.ipa文件中的良好效果,例如Organizer显示的版本类似“1.0.3281”(其中3281是通过下面贴在我的iOS目标构建脚本):
REV=`svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
echo "REV=$REV"
echo "#define kRevisionNumber @\"$REV\"" > ${PROJECT_DIR}/revision.h
echo "INFOPLIST_PATH=${INFOPLIST_PATH}"
BASEVERNUM=`/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "${INFOPLIST_FILE}" | sed 's/,/, /g'`
echo "BASEVERNUM=$BASEVERNUM"
PLISTARG1="Set :CFBundleVersion $BASEVERNUM.$REV"
echo "PLISTARG1=$PLISTARG1"
/usr/libexec/PlistBuddy -c "$PLISTARG1" "${TARGET_BUILD_DIR}"/${INFOPLIST_PATH}
但是,XCode的4(我已经因为来爱)显然需要一些调整,因为这只是魔术作品排序的。这是上面脚本的结果。
REV=3281
INFOPLIST_PATH=Foo.app/Info.plist
BASEVERNUM=1.0
PLISTARG1=Set :CFBundleVersion 1.0.3281
我可以通过寻找在〜/库/.../ Foo.app/Info.plist,是的,它没有更新的正确版本,请参阅:
<key>CFBundleVersion</key>
<string>1.0.3281</string>
因此显然有一个额外的文件需要更新..也许在.xcarchive?关于何处首先钻取的任何建议?
唉,这正是我正在寻找工作的归档方式,它仍然在XCode 3中工作,现在看起来并不在4中。请欣赏Jaysen的建议。谢谢。 – 2011-06-29 17:07:02
嗨Jaysen,工作就像一个魅力,但这个脚本当然会改变你的信息plist,你应该承诺,这会导致一个变化,你应该承诺,等等等等。也许最好是建立这样的一个svn或者git commit hook? http://svnbook.red-bean.com/en/1.2/svn.reposadmin.create.html#svn.reposadmin.create.hooks – 2011-12-13 11:34:48
根本不工作,因为路径是错误的。把一个工作版本放在下面。 @JohanPelgrim是可能会更好,但我太懒惰 – 2013-09-04 11:39:30