Xcode团队Build Number解决方案

在开发过程中,记录下整个项目build了多少次,有的人觉得有意义,有的人觉得没意义。但我是前者!

如果是单独开发者 这里 的Shell Script就足够了

但是,如果是团队开发者,这样的Script,往往会导致info.plist冲突,而且,build的数目也不对

所以有了以下的解决办法

详情看这里



currentUser="$USER"

cretePlist() {

cat > build.plist <

$currentUser

1

users

$currentUser

EOF

}

[ -f ${PROJECT_DIR}/build.plist ] && echo "Found build.plist" || cretePlist

users=$(/usr/libexec/PlistBuddy -c "Print users" "${PROJECT_DIR}/build.plist")

mybuild=$(/usr/libexec/PlistBuddy -c "Print $currentUser" "${PROJECT_DIR}/build.plist")

alreadyIn=0

if [[ $users == *"$currentUser"* ]]

then

alreadyIn=1

fi

if [ ${alreadyIn} -eq 0 ];

then

users="$users|$currentUser"

build=1

/usr/libexec/PlistBuddy -c "Set :users $users" "${PROJECT_DIR}/build.plist"

/usr/libexec/PlistBuddy -c "Add :$currentUser string $build" "${PROJECT_DIR}/build.plist"

else

mybuild=$(($mybuild + 1))

/usr/libexec/PlistBuddy -c "Set :$currentUser $mybuild" "${PROJECT_DIR}/build.plist"

fi

IFS='|' read -ra ADDR <<< "$users"

totalBuild=0

for i in "${ADDR[@]}"; do

echo "$i"

memberbuild=$(/usr/libexec/PlistBuddy -c "Print $i" "${PROJECT_DIR}/build.plist")

totalBuild=$(($totalBuild + $memberbuild))

done

echo  $totalBuild

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $totalBuild" "${PROJECT_DIR}/${INFOPLIST_FILE}"


详细用法

1. Select: your Target in Xcode

2. Select: Build Phases Tab

3. Select: Add Build Phase -> Add Run Script

4. Paste code below in to new "Run Script" section

5. Drag the "Run Script" below "Link Binaries With Libraries"

6. Insure that your starting build number is set to a whole integer and not a float (e.g. 1, not 1.0)

注意事项 点我

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容