iOS开发小记—Shell脚本打包
2017-08-29 本文已影响685人
帅气的小跟班
在iOS开发中,我们经常需要上传ipa包。公司配置的电脑打包速度很慢(看机子和项目大小,反正公司配的苹果盒子很慢,而且每一步都要手点),打包时基本不能做任何其他事情(很卡),极大的浪费了时间。偶然间听说了shell脚本可以帮我们很方便的解决这个问题,看了一篇文章之后,特此记录一下shell打包的流程以及中间遇到的坑。
准备工作
- 准备要打包的项目,在苹果开发者网站上下载打包用到的证书,这里打测试包作为演示,就下载adhoc 证书进行测试。下载adhoc 证书并运行,然后在项目中选中Targets->General->Signing ,勾选Automatically manage signing,把team选为该证书对应的开发者账号。
- 下载ReleaseDir,将ReleaseDir文件夹,放到跟所要打包的项目的根目录(ShellPackageDemo)同级别的目录下。
- 打开ReleaseDir文件夹中的ExportOptions.plist文件,这里的四个选项是对包的设置。
** ExportOptions.plist文件参数说明 **
compileBitcode:不上架App Store,Xcode是否启用Bitcode重新编译,默认为YES。
method:归档类型,包括app-store、ad-hoc、package、enterprise、development以及developer-id。
uploadBitcode:上线App Store是否开启Bitcode,默认为YES。
uploadSymbols:上线App Store,是否开启符号序列化,这是与查crash相关的,默认为YES。
因此我们对ExportOptions.plist做如下设置:
ExportOptions设置截图.png重点:在使用下列方法前,请先使用Xcode成功打包一次。(具体原因现在不明)
调用方法
1.打开终端,cd至ReleaseDir下。假如电脑之前装了cocoapods(其他有切换过ruby环境的操作也算),请先在终端运行rvm use system
将ruby切成系统的。
2.根据项目具体情况在终端运行下列对应的命令
./release.sh shellPackageDemo -w -e -v 1.0.0 -b 1.0.0
//使用了cocoapods
./release.sh shellPackageDemo -e -v 1.0.0 -b 1.0.0
//未使用cocoapods
调用格式:
参数说明:
<Project directory name> 第一个参数:所要打包的项目的根目录文件夹名称
-w workspace打包,不传默认为project打包
-s <Name> 对应workspace下需要编译的scheme(不传默认取xcodeproj根目录文件名)
-e 打包前是否先编译工程(不传默认不编译)
-d 工程的configuration为 Debug 模式,不传默认为Release
-a 打包,Version版本号自动+1(针对多次打测试包时的版本号修改)
-b <Build Num> Build版本号,指定项目Build号
-v <Version Num> Version版本号,指定项目Version号
参数-a 与 -v 互斥,只能选择传其中之一
演示demo未使用cocoapods,因此运行
./release.sh shellPackageDemo -e -v 1.0.0 -b 1.0.0
得到ipa包
运行结果截图:
终端运行结果截图.pngreleaseDir目录截图.png
参考链接:Shell脚本——Xcode脚本打包