自动打包工具shenzhen使用简介

DailyBuild几乎是每一个iOS开发每天都必做的事情,尤其是到了项目测试阶段,每天都要打好几个安装包给测试同学去测试,如果使用以前的老方法,就得先手动Clean,然后Archive,然后创建响应的目录,把安装包和dSYM文件都拷进去,然后再上传到FTP,所有的这些操作,手动做下来至少得七八分钟,每天如果打三个包,那么将近半个小时就浪费在了打包上。

为了节约打包话费的时间,出现了很多自动打包的工具,比较著名的有facebook的xctool以及Mattt Thompson大神的shenzhen(深圳,名字也很有意思,😄),本文主要介绍一下shenzhen的用法。

shenzhen最大的特点就是它除了能个打包外,还可以发布,可以发布到iTunes Connect,也可以发布到FIR.im蒲公英等第三方应用托管平台。让我们可以一键时间打包发布。

安装

使用gem安装

1
$ sudo gem install shenzhen

使用

打包

1
ipa build -w lazyaudio.xcworkspace --clean -d /Users/liujinlong/Desktop/App -s MyApp --ipa AppName.ipa -c Debug --verbose

说明:

  • -w 表示编译的workspace,如果没有创建workspace,可以使用-p来指定项目名
  • –clean 表示在编译前进行clean操作
  • -d 指定的是打包后生成的.ipa和.dSYM文件存放的目录,可以是不存在的目录,如果目录不存在,会自动创建
  • -s 指定scheme,如果存在多个scheme,需要明确指定的,如果不指定,在执行时会出现选项,进行选择
  • -ipa 指定生成的ipa的名称,注意要添加.ipa
  • -c 指定configuration,这里可以指定是以Debug还是以Release方法进行编译,注意第一个字母要大写,否则会出错
  • –verbose打印,更多log
  • 如果项目使用了CocoaPods,应该使用-w指定workspace进行编译,并且要明确指定编译哪个scheme

发布

发布的命令的很多,具体可以参考github的README,这里只介绍上传到FTP一种

1
ipa distribute:ftp --host 127.0.0.1 -port 8080 -f /Users/liujinlong/Desktop/App/AppName.ipa -u username -p 123456 --path /iOSApp/v1.1.2/20160101 --mkdir

说明:

  • –host 指定FTP服务器主机
  • –port 指定FTP服务器端口
  • -f 指定要上传的ipa文件的路径
  • -u 指定FTP服务器用户名
  • -p 指定FTP服务器密码
  • –path 指定FTP服务器路径
  • –mkdir 如果指定的FTP服务器路径不存在,则创建路径

有了shenzhen这个工具,我们的打包工作就变得异常轻松,下面是我使用shenzhen写的一个shell脚本,可以一个命令完成打包并上传到FTP。

Github: BuildIPAScript