二丫讲梵 二丫讲梵
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)

二丫讲梵

行者常至,为者常成
首页
  • 最佳实践
  • 迎刃而解
  • Nginx
  • Php
  • Zabbix
  • AWS
  • Prometheus
  • Grafana
  • CentOS
  • Systemd
  • Docker
  • Rancher
  • Ansible
  • Ldap
  • Gitlab
  • GitHub
  • Etcd
  • Consul
  • RabbitMQ
  • Kafka
  • MySql
  • MongoDB
  • OpenVPN
  • KVM
  • VMware
  • Other
  • ELK
  • K8S
  • LLM
  • Nexus
  • Jenkins
  • 随写编年
  • 家人物语
  • 追忆青春
  • 父亲的朋友圈
  • 电影音乐
  • 效率工具
  • 博客相关
  • Shell
  • 前端实践
  • Vue学习笔记
  • Golang学习笔记
  • Golang编程技巧
  • 学习周刊
  • Obsidian插件周刊
关于
友链
  • 本站索引

    • 分类
    • 标签
    • 归档
  • 本站页面

    • 导航
    • 打赏
  • 我的工具

    • 备忘录清单 (opens new window)
    • json2go (opens new window)
    • gopher (opens new window)
    • 微信MD编辑 (opens new window)
    • 国内镜像 (opens new window)
    • 出口IP查询 (opens new window)
    • 代码高亮工具 (opens new window)
  • 外站页面

    • 开往 (opens new window)
    • ldapdoc (opens new window)
    • HowToStartOpenSource (opens new window)
    • vdoing-template (opens new window)
GitHub (opens new window)
  • Nexus系列文章

  • Jenkins系列文章

    • Jenkins入门系列笔记汇总整理
    • 前言与介绍
    • Jenkins初始部署与简单配置
    • Jenkins各配置选项介绍
    • Jenkins中一个项目的构建
    • Jenkins配置项目构建的钉钉通知
    • Jenkins忘记管理员密码怎么办
    • Jenkins与gitlab的交互探微
    • Jenkins根目录详解
    • Jenkins插件之显示构建时间
    • Jenkins插件之批量修改配置
    • Jenkins配置简单构建邮件推送
    • Jenkins复杂邮件推送配置详解
    • Jenkins配置复杂构建邮件推送
    • Jenkins构建安卓项目之前的一些唠叨
    • Jenkins构建安卓项目配置
    • Jenkins与Gitlab分支的交互
    • Jenkins构建nodejs项目
    • 使用docker部署Jenkins及初始配置
    • 配置gitlab提交代码Jenkins自动构建
    • Jenkins回滚方案探微
    • Jenkins角色控制(小黄锁)探微
    • Jenkins构建的应用配置问题解决探微
    • Jenkins构建中tag的应用
    • Jenkins插件之Ansicolor(神器)
    • 最基础核心的Jenkins功能部署一个java应用
    • Jenkins+sonar构建代码扫描
    • Jenkins+docker+gitlab将应用部署到docker
    • Jenkins参数化构建犀利插件Active-Choices-Plugin
    • 记一次将代码中参数外显到构建历史中的操作
    • Jenkins升级与迁移的经验分享
    • pipeline笔记之从一个简单的项目构建开始
    • Jenkinsfile声明式语法详解
    • 自动构建的原始配置以及pipeline中的用法
    • 多分支构建的实践与思考
    • 使用Jenkinsfile类前端项目的部署与回滚
    • 如何在Jenkinsfile中定义一个全局的时间戳变量
    • Jenkins中自由风格回滚方案的最佳实践
    • Jenkins中pipeline风格回滚方案的最佳实践
    • pipeline结合ansible剧本进行批量的部署与回滚配置
    • 最近配置安卓iOS打包本地化流程中一些值得记录的内容
      • 1,NGINX 的准备工作
      • 2,安卓项目的配置
      • 3,iOS 的曲折配置之路
    • pipeline中如何在environment环节声明一个含有通配符的变量
    • git-Parameter插件在pipeline共享库中的实践详解
    • jenkins作为ci检测代码是否合并的实践
    • 将Jenkins共享库的Jenkinsfile放到ci静态检测的实践
    • Jenkins的pipeline实践之GitSCM参数配置项详解
    • Jenkins中pipeline对接CMDB接口获取主机列表的发布实践
    • Jenkins有任务无法kill提示即将关闭
    • Jenkins基于Share Library共享库的最佳实践探索
    • Jenkins结合MySql Database插件的平台化实践思路
    • Jenkins-Groovy中三元表达式的用法
    • Jenkins-Groovy中Switch的高阶用法
    • Jenkins-pipeline之利用activity choice插件对接查询MySQL数据实现动态参数化的功能
    • CentOS通过yum快速安装Jenkins
    • Jenkins-pipeline语法之错误处理详解(文末有干货)
    • Jenkins常用插件汇总以及简单介绍
    • Jenkins所遇报错汇总及解决
    • Jenkins管理维护运维规范
  • ELK笔记

  • Kubernetes笔记

  • LLM专题

  • 系列专题
  • Jenkins系列文章
二丫讲梵
2019-12-14
目录

最近配置安卓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
1

其中 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;
        }
}
1
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,安卓项目的配置

安卓的打包,依然需要下载制作二维码的开源程序,基本上这个思路都还比较清晰简单:

image

脚本内容:

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/
1
2

就 OK 了。

# 3,iOS 的曲折配置之路

现在比较尴尬的是 iOS 的情况,一开始不了解,依旧按照安卓的思路进行配置,后来发现 iOS 打出来的 ipa 包,手机扫了之后并不能直接安装,非常尴尬,因为这个坑,耽误了几个小时,直到后来在 GitHub 看到了一个开源程序:ios-ipa-server (opens new window)

ios-ipa-server

ios包下载工具

- 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)
1
2
3
4
5
6

寻找解决方案的过程中了解到了 ipa 的包想要安装顺利,需要一个 plist 的文件进行配置,而开源程序,正是做了这个事情。

这个程序能够让打好的包直接转化成可安装,然后提供二维码用于下载,先在主机安装软件:

npm i -g ios-ipa-server
1

命令使用方式如下:

ios-ipa-server -i 192.168.3.4 -p 666 /media/ipa/
1

/media/ipa/下放的是每次打好的 ipa 包,这个软件优秀的是,后续再放进来的 ipa 包,也会自动转化成可用的,所以只需要守护进程(这里用的tmux)运行这个程序,然后每次构建的包放到这个目录下就可以了。

这个时候会返回两个二维码,以及两个链接,第一个是 ca 证书,可以忽略,第二个才是重点:

image

接下来的操作基本上就差不多了,因为这个二维码 URL 是固定的,所以可以在 Jenkins 里边也固定一下,把这个 URL 打成二维码。

image

同时也可以在项目的说明信息当中添加一下说明,从而易于使用:

image

其中用到的保留五个版本的脚本,这里也记录一下:

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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
微信 支付宝
#jenkins#Android#ios
上次更新: 2024/07/04, 22:40:37
pipeline结合ansible剧本进行批量的部署与回滚配置
pipeline中如何在environment环节声明一个含有通配符的变量

← pipeline结合ansible剧本进行批量的部署与回滚配置 pipeline中如何在environment环节声明一个含有通配符的变量→

最近更新
01
学习周刊-总第212期-2025年第21周
05-22
02
从赵心童世锦赛夺冠聊聊我的斯诺克情缘
05-16
03
学习周刊-总第211期-2025年第20周
05-15
更多文章>
Theme by Vdoing | Copyright © 2017-2025 | 点击查看十年之约 | 浙ICP备18057030号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式