51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3000|回复: 2
打印 上一主题 下一主题

[转贴] 自动打包平台

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2017-6-27 13:08:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自动打包的流程


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


iOS的安装命令(在下载页的“下载安装”按钮里配置的此命令)下面的命令可以在线安装iOS的ipa安装包,url后面跟plist文件地址
plist文件里面要配置你的安装包的一些信息,下面有模板。
每次执行python脚本的时候生成一个plist文件用于下载
itms-services://?action=download-manifest&url=plist文件urlplist文件模板
  1. <plist version="1.0">
  2. <dict>
  3.     <key>items</key>
  4.     <array>
  5.         <dict>
  6.             <key>assets</key>
  7.             <array>
  8.                 <dict>
  9.                     <key>kind</key>
  10.                     <string>software-package</string>
  11.                     <key>url</key>
  12.                     <string>此处填写ipa文件的下载地址,如http://xxx.xxx/xxxx.ipa</string>
  13.                 </dict>
  14.             </array>
  15.             <key>metadata</key>
  16.             <dict>
  17.                 <key>bundle-identifier</key>
  18.                 <string>此处填写工程的bundle-identifier</string>
  19.                 <key>bundle-version</key>
  20.                 <string>此处填写工程的版本号</string>
  21.                 <key>kind</key>
  22.                 <string>software</string>
  23.                 <key>title</key>
  24.                 <string>得</string>
  25.             </dict>
  26.         </dict>
  27.     </array>
  28. </dict>
  29. </plist>
复制代码
生成二维码
  1. def gen_qrcode(install_app, config_info, file_name, ftp_url, project_path):
  2.     qr = qrcode.QRCode(
  3.         version=1,
  4.         error_correction=qrcode.constants.ERROR_CORRECT_L,
  5.         box_size=4,
  6.         border=1
  7.     )

  8.     image_name = file_name.replace(".ipa", "") + ".png"
  9.     qr.add_data(install_app)
  10.     qr.make(fit=True)
  11.     img = qr.make_image()
  12.     img.save(project_path + image_name)
复制代码
编译失败发送报警邮件
用的Editable Email Notification插件



下载页面数据库表
  1. CREATE TABLE `app_info` (
  2.   `id` bigint(20) NOT NULL AUTO_INCREMENT,
  3.   `app_name` varchar(150) DEFAULT NULL COMMENT '安装包名称',
  4.   `os_name` varchar(50) DEFAULT NULL COMMENT '手机系统(Android, IOS)',
  5.   `config` varchar(50) DEFAULT NULL COMMENT '环境(测试-1,仿真-2,线上-3)',
  6.   `versions` varchar(50) DEFAULT NULL COMMENT '版本号',
  7.   `app_path` varchar(200) DEFAULT NULL COMMENT '安装包地址',
  8.   `qrcode_path` varchar(150) DEFAULT NULL COMMENT '二维码图片地址',
  9.   `app_time` datetime DEFAULT NULL COMMENT '安装包生成时间',
  10.   PRIMARY KEY (`id`)
  11. ) ENGINE=InnoDB AUTO_INCREMENT=1624 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;
  12. 下载页源码
复制代码
Eclipse可直接导入
APP下载主页


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

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

  26.     file.close()
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    2024-7-12 13:16
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2017-6-27 13:14:34 | 只看该作者
    加精理由: 简明扼要.值得参考
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2017-6-27 13:15:28 | 只看该作者
    乐哈哈yoyo 发表于 2017-6-27 13:14
    加精理由: 简明扼要.值得参考

    恩,可以的
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-21 05:32 , Processed in 0.064071 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表