自动打包平台

目录

前言:

自动打包的流程

Jenkins 配置项目

源码管理

构建触发器

Android Gradle 编译

iOS xcodebuild 编译

构建后操作

iOS 的安装命令(在下载页的 “下载安装” 按钮里配置的此命令)

plist 文件模板

生成二维码

编译失败发送报警邮件

下载页面

APP 下载主页

扫描二维码下载页


前言:

随着软件开发的不断发展,自动化打包平台逐渐成为了软件开发过程中不可或缺的一部分。它可以帮助开发者快速构建、测试和部署软件,提高开发效率和质量。本文将介绍自动打包平台的概念、优势和实现方式,帮助开发者更好地理解和应用自动打包平台。

自动打包的流程

Jenkins 配置项目

源码管理

构建触发器

一分钟查询一次 Git 服务器的代码是否有提交

Android Gradle 编译

-Plog_enable_cmd='true'    是否开启log开关(线上设置的false)
-Pserver_environment_cmd='测试'    传一个全局属性,编译指定的环境
-q config    执行config任务,使上面两个全局属性生效

iOS xcodebuild 编译

xcodebuild先编译成.app文件
-workspace  工程的.xcworkspace路径
-scheme  在工程目录下,xcodebuild -list查询
-configuration  在xcode新建三个configuration,用以区分测试、仿真、线上环境
-derivedDataPath build目录

xcrun把.app文件编译成.ipa文件
-sdk  iOS sdk,iphoneos是真机
-v 要编译的.app文件路径
-o .ipa输出路口

构建后操作

执行 Python 脚本,做以下的事情:

1. 拿到此次编译的环境和版本号(到项目文件查询)
2. 修改安装包名字,格式:项目名_版本号_环境_时间戳.apk
3. 生成下载地址二维码和下载页(每个app都有自己的二维码下载地址和下载页,类似蒲公英,扫描二维码跳转app下载页)
4. iOS每个安装包需要配置一个plist文件,配置app信息,用于下载 (下面有模板)
5. 上传二维码图片、下载页和安装包到下载服务器
6. 保存安装包数据到数据库

iOS 的安装命令(在下载页的 “下载安装” 按钮里配置的此命令)

下面的命令可以在线安装 iOS 的 ipa 安装包,url 后面跟 plist 文件地址
plist 文件里面要配置你的安装包的一些信息,下面有模板。
每次执行 python 脚本的时候生成一个 plist 文件用于下载

itms-services://?action=download-manifest&url=plist文件url
plist 文件模板
<plist version="1.0">
<dict>
    <key>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>此处填写ipa文件的下载地址,如http://xxx.xxx/xxxx.ipa</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>此处填写工程的bundle-identifier</string>
                <key>bundle-version</key>
                <string>此处填写工程的版本号</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>&#24471;</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>
生成二维码
def gen_qrcode(install_app, config_info, file_name, ftp_url, project_path):
    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_L,
        box_size=4,
        border=1
    )

    image_name = file_name.replace(".ipa", "") + ".png"
    qr.add_data(install_app)
    qr.make(fit=True)
    img = qr.make_image()
    img.save(project_path + image_name)

编译失败发送报警邮件

用的 Editable Email Notification 插件

 

下载页面

数据库表

CREATE TABLE `app_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `app_name` varchar(150) DEFAULT NULL COMMENT '安装包名称',
  `os_name` varchar(50) DEFAULT NULL COMMENT '手机系统(Android, IOS)',
  `config` varchar(50) DEFAULT NULL COMMENT '环境(测试-1,仿真-2,线上-3)',
  `versions` varchar(50) DEFAULT NULL COMMENT '版本号',
  `app_path` varchar(200) DEFAULT NULL COMMENT '安装包地址',
  `qrcode_path` varchar(150) DEFAULT NULL COMMENT '二维码图片地址',
  `app_time` datetime DEFAULT NULL COMMENT '安装包生成时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1624 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;

Eclipse 可直接导入

APP 下载主页

扫描二维码下载页
def create_html(file_path, html_name, install_app):

    print "生成html文件"
    file = open(file_path + "html/" + html_name, 'w')
    file.write(u'\
        <html lang=zh-cmn-Hans> \
        <head> \
            <meta charset="utf-8"> \
            <title>安装APP</title> \
            <link href="index.css" rel="stylesheet" type="text/css" /> \
        </head> \
        <body> \
            <div id="" class="view row" style="margin-top:30px;"> \
                <div class="span12 margin-bottom-20" style="text-align:center;"> \
                    <div class="spinner"> \
                        <div id="showtext"><font size="7" color="red">请用浏览器打开</font></div> \
                        <div id="showtext"><font size="7" color="red">点击安装后,请按 Home 键在桌面查看</font></div> \
                        <a href="' + 
                        install_app + 
                        '" id="down_load" class="btn-u btn-u-lg btn-u-green"><i class="fa fa-download"></i> 点击安装</a> \
                   </div> \
                </div> \
            </div> \
        </body> \
        </html> \
    ')

    file.close()

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)

相信能使你更好的进步!

点击下方小卡片

【自动化测试交流】:574737577(备注ccc)icon-default.png?t=N6B9http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=qxJZAmfxpSO2iG5DiXEmovrrbqX9lf9Y&authKey=LtqIFckKO2IOCAiI9MaslOjsWuQVoVKRPzUSJH%2F5I9YFBuKr75dUnznAqyCpJ0t6&noverify=0&group_code=574737577 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值