在xcode中基于git设置bundle版本

时间:2016-06-15 17:26:47

标签: ios xcode git plist

我正在尝试基于git在xcode中设置包版本。

#!/bin/bash

BRANCH=${1:-'master'}
BUILD_NUMBER=$(expr $(git rev-list $BRANCH --count) - $(git rev-list HEAD..$BRANCH --count))
echo "Updating build number to $BUILD_NUMBER using branch '$BRANCH'."

APP_INFO_PLIST="${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
DSYM_INFO_PLIST="${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist"

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$APP_INFO_PLIST"
if [ -f "$DSYM_INFO_PLIST" ] ; then
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$DSYM_INFO_PLIST"
fi

但是我在这一行遇到了错误:

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$DSYM_INFO_PLIST"

我在读取该文件时出错“错误读取文件:...”。

但是,当我检查该文件时,它确实存在。它是在这个构建步骤之后创建的吗?

我仔细检查过这个脚本是否设置为在Copy Bundle资源之后和我的一些可可豆荚之后运行。

修改: 搜索它看起来像xocxcodee 6这个解决方案很好。我正在运行xcode 7。

1 个答案:

答案 0 :(得分:0)

我的问题是如何在xcode中设置构建版本。我把它设置为

<set in build phase>

plist文件是xml,xcode不会转义您在构建中放置的文本。 '&lt;'和'&gt;'正在搞乱plist,因为它是无效的xml,在尝试读取文件时又会引发错误。

小心你为xmp构建版本放入xcode的文本。