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