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. 牛客NOIP暑期七天营-提高组6

    目录 A-积木大赛 题目描述 link 题解 代码 B-破碎的序列 题目描述 link 题解 C-分班问题 题目描述 link 题解 比赛链接 官方题解 A-积木大赛 题目描述 link 题解 标签: ...

  2. EnumProcess 实现枚举进程

    BOOL WINAPI EnumProcesses ( _Out_writes_bytes_(cb) DWORD * lpidProcess, _In_ DWORD cb, _Out_ LPDWORD ...

  3. NVIDIA驱动安装、CUDA安装、cudnn安装

    1.禁用 nouveau 驱动 sudo vim /etc/modprobe.d/nvidia-installer-disable-nouveau.conf 或者 sudo vim /etc/modp ...

  4. vue.js_02_vue.js的基础指令

    1.v-cloak 作用:解决插值表达式闪烁的问题 当网速过慢时,或者加载数据时间过长时,网页会出现  {{msg}}  的现象 使用方法: <!--缺陷需要写style样式--> < ...

  5. VitualBox虚拟机安装CentOS, shell模式与图形化界面的相互切换

    方法一:永久切换 # vi /etc/inittab 编辑 init 5 为 init 3,重启就自动进入控制台方式:反之桌面模式 方法二:当前有效 桌面模式切换shell模式:Ctrl + Alt ...

  6. java锁_IO_NIO_AIO_BIO_GC_Jvm

    如何保证线程安全,线程锁有哪些? 同步方法和同步代码块常见的锁:ReentrantLock与synchronized二者区别:             (1) 线程A和B都要获取对象O的锁定,假设A获 ...

  7. 使用C#反射实现用户控件调用父页面方法

    using System.Reflection; MethodInfo mi = this.Page.GetType().GetMethod("GetUserName"); //该 ...

  8. 2.快速创建springboot项目 连pom文件里面的配置都不用配了

    无论是创建项目 还是module 模块 选择这个 .然后在后面的选择中选择自己要的功能 就可以把相关的依赖都加进去 省去了依赖 其后的写法跟第一篇一样 在这个项目下面有一个配置文件 ====>a ...

  9. ECMAScript 5 严格模式

    1. 变量必须使用var声明,杜绝不小心将本地变量声明成一个全局变量 在常规模式下,如果我们声明一个变量时省略了var关键字,解析引擎会自动将其声明为全局变量,但在严格模式下,会直接抛出异常,不会为我 ...

  10. global.fun.php

    <?php /**   所有公共函数文件*/ /**    序列化*/function _serialize($obj){    return base64_encode(gzcompress( ...