我们每天都要打包给测试,甚至一天打 N 个包,而每次打包都被要求改 Build,十分麻烦。
幸运的是,我们可以通过 Shell 脚本来省略这个本来异常繁琐过程。
环境:
OS X 10.11.3
Xcode 7.2
SVN 1.9
一、升级 Mac 自带 SVN
下载最新 SVN
打开 http://www.wandisco.com/subversion/download#osx ,找到适合你系统的下载链接。
因为目前没有 OS X 10.11 的下载链接,我们先选择 10.10 的版本(测试可用):安装到本机
直接打开下载的文件,按提示安装,然后打开终端执行以下命令,把 SVN 的路径加到 PATH 中:1
vim ~/.bash_profile
按 i 进入编辑状态,粘贴以下内容:
1
export PATH=/opt/subversion/bin:$PATH
按 esc -> shift + ; -> 输入 wq -> 回车保存。
重启终端
运行以下命令检测 SVN 版本号,应该是 1.9.3 左右,OK。1
svn --version
二、配置 Xcode 内的 SVN
执行以下命令:
1 | cd /Applications/Xcode.app/Contents/Developer/usr/bin/ # 进入 Xcode 存放 SVN 命令的子目录 |
重启 Xcode。
更新了 Xcode 请重新执行以上操作!
三、自动 Build 脚本
脚本内容
打开项目,找到对应的 TARGET,点击 Build Phases -> New Run Script Phase:
在黑色输入框里面输入以下脚本内容:1
2
3REV=`svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $REV" "${INFOPLIST_FILE}"点下其他地方以确定输入,执行 ⌘ + B 编译或者 ⌘ + R 运行,就可以看到效果了。
如果是 Git
1
REV=`git rev-list HEAD | wc -l | awk '{print $1}'`
HEAD 是分支名,代表当前分支,可以直接替换成其他分支名,如 master 等。
如果仅仅只想在 Release(如 Archive 等)的时候更新 Build,可以在外层加入以下判断:
1
2
3if [ "${CONFIGURATION}" = "Release" ]; then
fi
联系与捐赠
- Mail:
echo bGVvZGF4aWFAZ21haWwuY29tCg== | base64 -D
- GitHub: iTofu
如果你想对我的开发或是开源项目进行支持捐助,请扫描下方二维码,谢谢!👇