关于打包
发布的打包是兴奋,测试的打包是耗时耗力,有时候,做了一半的东西,突然给中断,要求你给另一个项目打包个测试,这时候,你要打开另一个项目,编译,打包,上传,通知测试,一个流程下来,十几分钟过去了,但是不可能就这样看着干等十几分钟,很多人都会选择继续之前的工作,于是······,也是是一个钟,两个钟,那个工作做完了或者刚好想起打包的事,才回来查看打包完了没有,上传再通知测试,所以,把一切交给程序,想当于多线程,让程序帮我们自己把编译,打包,上传,通知测试这一流程简化为一句代码,然后我们可以继续做我们的手头的工作了
若需要最终结果,请把鼠标滚到最后,整个脚本的代码都贴在最后,前面可忽略
基于手头的项目,打包的流程
接到打包任务的时候,执行打包脚本,这个脚本会先拉取最新的项目(web app)代码,并将代码copy到相对应的sdk中(iOS or android),然后不同的平台执行不同的命令进行打包,android平台可以选择是否打渠道包,最后打包完上传发邮件通知测试人员,一切尽在一行代码中,爹妈不用再操心你老忘事啦
打包脚本
先根据不同的平台写好脚本,再进行合并
iOS
- 命令行进入项目
sdk
- 执行
xcodebuild clean
,清除信息 - 执行
xcodebuild build
,重新编译,生成.app
- 使用
xcun
打包成.ipa
- 上传
fir.im
- 发邮件通知相关人员
|
|
目前的项目是web app
,使用HBuilder
工具开发,所以这脚本只适用于该类项目,若为原生项目,按需修改
使用此脚本需要修改hbuilder_appid
为相应的值,若使用官方的sdk
进行离线打包,hasPods
为false
,若自己配置的离线打包sdk
,使用了pod
管理第三方,需要设置为true
直接命令行执行:
期间,会生成 xx.app
紧接着,将xx.app
打包成 xx.ipa
最后,上传到fir.im
android
- 进入项目
sdk
- 执行
./gradlew clean
,清除信息 - 执行
./gradlew assembleRelease
,编译出签名的apk
- 打渠道包
- 上传
fir.im
编译打包apk
先在
Android studio
中配置:配置完,生成:
配置打包签名:
生成代码:
命令行进入安卓sdk项目所在根目录,执行:
生成的apk如图:
渠道包
安卓经常会发布在不同的平台,所以对应平台会打出不同的渠道包
这里需要几个东西,上面签名的
apk
,一个渠道文件(channel_list.txt
),一个渠道包脚本(channel.py
),一个对apk
优化的脚本(zpalign_batch.sh
或者zpalign_batch.bat
)
channel_list.txt
channel.py
zpalign_batch.sh
zpalign_batch.bat
在以上文件放在同一目录,执行:
结果如图:
脚本合并
以上是
iOS
和android
的不同打包方式,对于懒癌晚期的我们来说,太复杂了,好了,现在可以忘记上面的东西,只要记住下面的合并完的脚本,先看下项目目录:
archive
用于存放打包后的apk
和ipa
hbuilder_android_sdk
存放打包的android sdk
hbuilder_ios_sdk
存放打包的iOS sdk
web_project
存放我们的web app
项目channel_list.txt
,android
,打包渠道zipalign_batch.bat
和zipalign_batch.sh
,对apk
进行优化UTea.py
,主要代码,UTea
为对应项目名,项目不同,按需修改为项目名
终端cd
到当前位置,输入下面命令,go 你:
以上为android
和iOS
各自生成的最终文件,用于上传到fir.im
差点忘记贴代码🙄️:
第一次使用,需要手动配置xcode
的签名以及保证项目编译通过,android
需要配置签名文件,然后按照demo
的格式,可以自己修相关路径,原本是想用一个python
脚本,打包多个项目,但是目前的项目需要一个id
,这个id
属于随机生成,若每次需要输入太过麻烦,便改为,一个项目对应一个脚本
自动打包终于告一段落了,之前写的iOS自动打包,所缺的android
打包也补上了,可以继续当一名懒癌晚期患者了