【iOS】如何让 Xcode 自动更新 SVN Version 到 Build

我们每天都要打包给测试,甚至一天打 N 个包,而每次打包都被要求改 Build,十分麻烦。
幸运的是,我们可以通过 Shell 脚本来省略这个本来异常繁琐过程。

环境:
OS X 10.11.3
Xcode 7.2
SVN 1.9

一、升级 Mac 自带 SVN

  1. 下载最新 SVN
    打开 http://www.wandisco.com/subversion/download#osx ,找到适合你系统的下载链接。
    因为目前没有 OS X 10.11 的下载链接,我们先选择 10.10 的版本(测试可用):
    By https://LeoDev.me

  2. 安装到本机
    直接打开下载的文件,按提示安装,然后打开终端执行以下命令,把 SVN 的路径加到 PATH 中:

    1
    vim ~/.bash_profile

    按 i 进入编辑状态,粘贴以下内容:

    1
    export PATH=/opt/subversion/bin:$PATH

    按 esc -> shift + ; -> 输入 wq -> 回车保存。

  3. 重启终端
    运行以下命令检测 SVN 版本号,应该是 1.9.3 左右,OK。

    1
    svn --version

二、配置 Xcode 内的 SVN

执行以下命令:

1
2
3
4
cd /Applications/Xcode.app/Contents/Developer/usr/bin/  # 进入 Xcode 存放 SVN 命令的子目录  
sudo mkdir backupsvn # 创建备份目录
sudo mv svn* backupsvn/ # 把旧的 SVN 相关文件移动到备份目录
sudo ln -s /opt/subversion/bin/svn* ./ # 把新的 SVN 文件复制到当前目录

重启 Xcode。

更新了 Xcode 请重新执行以上操作!

三、自动 Build 脚本

  1. 脚本内容
    打开项目,找到对应的 TARGET,点击 Build Phases -> New Run Script Phase:
    By https://LeoDev.me
    在黑色输入框里面输入以下脚本内容:

    1
    2
    3
    REV=`svnversion -nc | /usr/bin/sed -e 's/^[^:]*://;s/[A-Za-z]//'`

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

    点下其他地方以确定输入,执行 ⌘ + B 编译或者 ⌘ + R 运行,就可以看到效果了。

  2. 如果是 Git

    1
    REV=`git rev-list HEAD | wc -l | awk '{print $1}'`

    HEAD 是分支名,代表当前分支,可以直接替换成其他分支名,如 master 等。

  3. 如果仅仅只想在 Release(如 Archive 等)的时候更新 Build,可以在外层加入以下判断:

    1
    2
    3
    if [ "${CONFIGURATION}" = "Release" ]; then  

    fi

参考资料:http://stackoverflow.com

联系与捐赠

  • Mail: echo bGVvZGF4aWFAZ21haWwuY29tCg== | base64 -D
  • GitHub: iTofu
  • 如果你想对我的开发或是开源项目进行支持捐助,请扫描下方二维码,谢谢!👇

    LEO

🍭 支持一根棒棒糖!