【iOS】如何让 Xcode 自动更新 SVN Version 到 Build
我们每天都要打包给测试,甚至一天打 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 | REV=`svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'` |
点下其他地方以确定输入,执行 ⌘ + B 编译或者 ⌘ + R 运行,就可以看到效果了。
- 如果是 Git
1 | REV=`git rev-list HEAD | wc -l | awk '{print $1}'` |
HEAD 是分支名,代表当前分支,可以直接替换成其他分支名,如 master 等。
- 如果仅仅只想在 Release(如 Archive 等)的时候更新 Build,可以在外层加入以下判断:
1 | if [ "${CONFIGURATION}" = "Release" ]; then |
联系与捐赠
- Mail:
echo bGVvZGF4aWFAZ21haWwuY29tCg== | base64 -D
- GitHub: iTofu