http://www.cocoachina.com/ios/20160307/15501.html

什么?又要测试包!

做iOS开发几年了,每天除了码代码,改Bug之外,最让我烦恼的莫过于测试的妹子跑过来:“刚才的Bug都改完了吧,再打个包吧”。然而对于这个自己应尽的义务我已经烦透了,先不说要配置各种参数什么的,光是用xcode打包时候clean代码,验证证书就让我焦头烂额,时不时还要翻个墙甚至要手机开个热点才能打包成功。每次打包顺利的话,也要7~8分钟,每天n个包,想早点完成任务准时下班想都别想了。于是做了个打包的脚本(然后欢乐的像狗了)。好了,废话不多说,下面来介绍一下这个脚本,希望能给你带来方便。

脚本的地址: https://github.com/hades0918/ipapy

优点:

  1. 自动化打包,一句指令解决,节省大量打包时间

  2. 省去证书验证的无奈等待

  3. 自动上传到fir.im分发平台 //不用再发qq给测试人员了,如果你觉得不安全的话,fir.im是可以设置密码的

  4. 自动发送邮件给测试人员

  5. 有帮助指令,上手简单

准备工作:(工欲善其事必先利其器)

参数配置:(如果指令没安装好的话,goto 准备工作)

配置相关信息 python ipa.py -c 或者 python ipa.py --config ,后面需要修改的话也用这个指令

targetName:工程的名称,如:我的工程是BossZP.xcodeproj,所以我的targetName就是BossZP

gitPath:工程的git地址,如:我的git地址是http://git.xxx.org/xxxxxx/xxxxxx.git

certificateName:证书名称,如:我的是iPhone Developer: YANG YU (7XC3UZCAZM)

firToken:在fir.im上创建应用后的token,如:我的是2ac8uf3j9z3ur98d7gxxxxxxxx

下面的是邮件设置:

emailFromUser:我的邮箱,如:xxxxxx@163.com

emailToUser:测试人员的邮箱,如:xxxxxx@163.com

emailPassword:我的邮箱的密码

emailHost:邮箱的host,可以去邮箱网页查看,如:我的是smtp.163.com

配置完信息,可以通过 --help 或者 -h 查看基本的使用方法

-h, --help 查看帮助信息

-c, --config 配置基本信息

-s, --showTags 显示git上所有的版本

-t TAG, --tag=TAG 设置打包时的版本

● 如果你不喜欢我把放在Documents下面,你可以把脚本的第28行改成你喜欢的目录,如:target_path = "/Users/yuyang/clone/BossZP"

你可以这样使用:

python ipa.py -h

python ipa.py --help

python ipa.py -c

python ipa.py --config

python ipa.py -s

python ipa.py --showTags

python ipa.py -t v3.0  //打包时候这样使用,后面的v3.0参数可以使用python ipa.py -s获取

python ipa.py -tag v3.0  //打包时候这样使用,后面的v3.0参数可以使用python ipa.py -s获取

python ipa.py (tag不写,默认是master)

最后自曝一下脚本的缺点吧,这个脚本只适合.xcodeproj的工程,workspace的还不支持,后续会慢慢改进。如果这个脚本能给你带来方便,顺手给个star吧,给我把它做的更好来点动力。

demo下载:

ipapy-master.zip

源码:自己用Python写的iOS项目自动打包脚本的更多相关文章

  1. iOS 制作自动打包脚本 Xcode8.3.2

    本文包含以下内容: 前言 1.shell脚本的编写 2.xcodebuild命令 3.完整的可用示例 参考资料 前言 做iOS开发,打包APP是比较频繁的事情,每次都手动去配置一堆东西确实是比较乏味. ...

  2. iOS项目自动打包

    用的是:https://www.jianshu.com/p/a61fe38c8c29 需要上传到pgy /TestFlight 在脚本中加几句就可以了 另外一种方式,fastlane打包 首要条件: ...

  3. (3.10)mysql基础深入——mysqld 服务器与客户端连接过程 源码分析【待写】

    (3.10)mysql基础深入——mysqld 服务器与客户端连接过程 源码分析[待写]

  4. 真想用c#开发个 wp五笔输入法。。。奈何网上资料太少,源码都是c++写的。求大神指点!!!

    真想用c#开发个 wp五笔输入法...奈何网上资料太少,源码都是c++写的.求大神指点!!!!

  5. Android7.1.2 源码编译并烧写Nexus5X

    1.环境配置 Ubuntu18.04 openJDK1.8 Python2.7 2.更新Ubuntu镜像源 编辑/etc/apt/source.list,替换为以下内容 deb http://mirr ...

  6. 【转】Android 源码下利用jni编译自己的项目(参考系统development/samples/SimpleJNI)

    原文网址:http://blog.csdn.net/qiuxiaolong007/article/details/7860481 记于正文前:环境是ubuntu10.10,android 源码是2.0 ...

  7. Kettle源码学习(一)——把Kettle项目跑起来

    kettle(pentaho data integration),是一款开源的C/S版的ETL工具,最近打算学习一下kettle源码,并自己写一个mini kettle,并改造成基于事件触发的流处理模 ...

  8. Git 把码云上被fork项目源码merge到fork出来的分支项目

    Git 把码云上被fork项目源码merge到fork出来的分支项目 By:授客 QQ:1033553122 需求描述 被fork的项目有更新代码,希望把更新的代码merge到fork分支项目 解决方 ...

  9. [从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务

    [从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务 目录 [从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务 0x00 摘要 0x01 业务领域 0 ...

随机推荐

  1. mysql备份时的快照原理

    实际上实验的结果表明,这里的 the first such read指的是:对同一个表或者不同表进行的第一次select语句建立了该事务中一致性读的snapshot. 其它update, delete ...

  2. 廖雪峰Java10加密与安全-3摘要算法-5Hmac

    1 比较MD5和HamcMD5 HmacMD5可以看作带安全salt的MD5 import javax.crypto.KeyGenerator; import javax.crypto.Mac; im ...

  3. JS钩子的机制与实现

    [什么是钩子] 接触过WordPress的朋友都知道,WP的程序中可以执行类似钩子的函数,当然是这PHP实现的钩子.在JavaScript中一样可以实现类似的功能. 用一句话来形容一下:钩子是将需要执 ...

  4. python图像翻转

    准备跟着台湾的一个机器学习课程好好学学python,链接在这http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML16.html 该课程开始有一个作业,叫做HW0 ...

  5. 【arc072f】AtCoder Regular Contest 072 F - Dam

    题意 有一个体积为L的水池,有N天 每天早上进水Vi体积的Ti温度的水. 每天晚上可以放掉任意体积的水. 问每天中午,水池满的情况下,水温最高多少. 水的温度只受新加进的谁的影响,对于水\(W1(T1 ...

  6. com.microsoft.sqlserver.jdbc.SQLServerException: 将截断字符串或二进制数据。

    遇到这个错误 数据库表结构定义为:varchar(50) 实际插入数据的字符长度超过了50,会引发这种错误. 如果你是debug调试的. 或许你在  getSession().flush();  上报 ...

  7. 交叉熵-loss-理解

    参考链接: https://blog.csdn.net/tsyccnh/article/details/79163834

  8. UVA11613 Acme Corproation

    UVA11613 Acme Corproation 生产销售计划 题目大意 A公司生产一种元素,给出该元素在未来M个月中每个月的单位售价,最大生产量,生产成本,最大销售量和最大存储时间,和每月存储代价 ...

  9. Leetcode463.Island Perimeter岛屿的周长

    给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相连(对角线方向不相连).整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地 ...

  10. maven-home

    E:/Soft/Maven/apache-maven-3.3.3 E:\Soft\Maven\apache-maven-3.3.3\conf\settings.xml E:\DellWork\Mave ...