最近配置安卓iOS打包本地化流程中一些值得记录的内容
公司这次的打包平台是测试同学搞的,Jenkins 部署在 Mac 电脑,看到他把包搞到了三方,因此打算一起拉回到本地。
# 1,NGINX 的准备工作
Mac 电脑很方便,因此使用 docker 先来跑两个 NGINX 虚拟主机:
$ docker run -itd --name erya -v /Users/liqilong/eryajf/docker/nginx/test1:/apk -v /Users/liqilong/eryajf/docker/nginx/test2:/er -v /Users/liqilong/eryajf/docker/nginx/test1/default.conf:/etc/nginx/conf.d/default.conf -p 801:800 -p 802:801 daocloud.io/library/nginx:1.15.9-alpine-perl
其中 test1 作为 apk 包的目录,test2 作为二维码的目录,用到的 default.conf 文件如下:
$ cat default.conf
server {
listen 800;
server_name localhost;
charset utf-8;
location / {
root /apk;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
}
server {
listen 801;
server_name localhost;
charset utf-8;
location / {
root /er;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
启动之后,访问localhost:800
即可看到每次的包,访问localhost:801
即可看到对应二维码。当然在 Jenkins 中需要用 IP 进行访问。
# 2,安卓项目的配置
安卓的打包,依然需要下载制作二维码的开源程序,基本上这个思路都还比较清晰简单:
脚本内容:
mv /Users/zxmren/.jenkins/workspace/test_android/app/build/outputs/apk/release/app-release.apk /Users/zxmren/nginx/apk/wpt-$BUILD_ID.apk
java -jar /Users/zxmren/nginx/jar/qr.jar url=http://192.168.3.3:800/wpt-$BUILD_ID.apk image=wpt-$BUILD_ID.jpg save=/Users/zxmren/nginx/er/
2
就 OK 了。
# 3,iOS 的曲折配置之路
现在比较尴尬的是 iOS 的情况,一开始不了解,依旧按照安卓的思路进行配置,后来发现 iOS 打出来的 ipa 包,手机扫了之后并不能直接安装,非常尴尬,因为这个坑,耽误了几个小时,直到后来在 GitHub 看到了一个开源程序:ios-ipa-server (opens new window)
- name: ios-ipa-server
desc: ios包下载工具
avatar: https://avatars2.githubusercontent.com/u/416130?s=460&u=8753e86600e300a9811cdc539aa158deec2e2724&v=4 # 可选
link: https://github.com/bumaociyuan/ios-ipa-server # 可选
bgColor: "#0074ff" # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号
textColor: "#fff" # 可选,默认var(--textColor)
2
3
4
5
6
寻找解决方案的过程中了解到了 ipa 的包想要安装顺利,需要一个 plist 的文件进行配置,而开源程序,正是做了这个事情。
这个程序能够让打好的包直接转化成可安装,然后提供二维码用于下载,先在主机安装软件:
npm i -g ios-ipa-server
命令使用方式如下:
ios-ipa-server -i 192.168.3.4 -p 666 /media/ipa/
/media/ipa/
下放的是每次打好的 ipa 包,这个软件优秀的是,后续再放进来的 ipa 包,也会自动转化成可用的,所以只需要守护进程(这里用的tmux
)运行这个程序,然后每次构建的包放到这个目录下就可以了。
这个时候会返回两个二维码,以及两个链接,第一个是 ca 证书,可以忽略,第二个才是重点:
接下来的操作基本上就差不多了,因为这个二维码 URL 是固定的,所以可以在 Jenkins 里边也固定一下,把这个 URL 打成二维码。
同时也可以在项目的说明信息当中添加一下说明,从而易于使用:
其中用到的保留五个版本的脚本,这里也记录一下:
cat keep-five.sh
#!/bin/bash
file_path="/media/ipa/"
file_name="*.ipa"
while true
do
A=`ls $file_path/$file_name | wc -l`
B=`ls -lt $file_path/$file_namt | tail -n 1 | awk '{print $9}'`
if [ $A -gt 5 ];then
rm -f $file_path/$B
else
break
fi
done
2
3
4
5
6
7
8
9
10
11
12
13
14