源码:自己用Python写的iOS项目自动打包脚本
http://www.cocoachina.com/ios/20160307/15501.html
什么?又要测试包!
做iOS开发几年了,每天除了码代码,改Bug之外,最让我烦恼的莫过于测试的妹子跑过来:“刚才的Bug都改完了吧,再打个包吧”。然而对于这个自己应尽的义务我已经烦透了,先不说要配置各种参数什么的,光是用xcode打包时候clean代码,验证证书就让我焦头烂额,时不时还要翻个墙甚至要手机开个热点才能打包成功。每次打包顺利的话,也要7~8分钟,每天n个包,想早点完成任务准时下班想都别想了。于是做了个打包的脚本(然后欢乐的像狗了)。好了,废话不多说,下面来介绍一下这个脚本,希望能给你带来方便。
脚本的地址: https://github.com/hades0918/ipapy
优点:
- 自动化打包,一句指令解决,节省大量打包时间 
- 省去证书验证的无奈等待 
- 自动上传到fir.im分发平台 //不用再发qq给测试人员了,如果你觉得不安全的话,fir.im是可以设置密码的 
- 自动发送邮件给测试人员 
- 有帮助指令,上手简单 
准备工作:(工欲善其事必先利其器)
- 安装xcode 
- 安装 fir.im的指令,见:https://github.com/FIRHQ/fir-cli/blob/master/README.md 
- 安装python2.7,这个是mac系统自带的,如果不是2.7的话,可以升级一下 
参数配置:(如果指令没安装好的话,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下载:
源码:自己用Python写的iOS项目自动打包脚本的更多相关文章
- iOS 制作自动打包脚本 Xcode8.3.2
		本文包含以下内容: 前言 1.shell脚本的编写 2.xcodebuild命令 3.完整的可用示例 参考资料 前言 做iOS开发,打包APP是比较频繁的事情,每次都手动去配置一堆东西确实是比较乏味. ... 
- iOS项目自动打包
		用的是:https://www.jianshu.com/p/a61fe38c8c29 需要上传到pgy /TestFlight 在脚本中加几句就可以了 另外一种方式,fastlane打包 首要条件: ... 
- (3.10)mysql基础深入——mysqld 服务器与客户端连接过程 源码分析【待写】
		(3.10)mysql基础深入——mysqld 服务器与客户端连接过程 源码分析[待写] 
- 真想用c#开发个 wp五笔输入法。。。奈何网上资料太少,源码都是c++写的。求大神指点!!!
		真想用c#开发个 wp五笔输入法...奈何网上资料太少,源码都是c++写的.求大神指点!!!! 
- Android7.1.2 源码编译并烧写Nexus5X
		1.环境配置 Ubuntu18.04 openJDK1.8 Python2.7 2.更新Ubuntu镜像源 编辑/etc/apt/source.list,替换为以下内容 deb http://mirr ... 
- 【转】Android 源码下利用jni编译自己的项目(参考系统development/samples/SimpleJNI)
		原文网址:http://blog.csdn.net/qiuxiaolong007/article/details/7860481 记于正文前:环境是ubuntu10.10,android 源码是2.0 ... 
- Kettle源码学习(一)——把Kettle项目跑起来
		kettle(pentaho data integration),是一款开源的C/S版的ETL工具,最近打算学习一下kettle源码,并自己写一个mini kettle,并改造成基于事件触发的流处理模 ... 
- Git 把码云上被fork项目源码merge到fork出来的分支项目
		Git 把码云上被fork项目源码merge到fork出来的分支项目 By:授客 QQ:1033553122 需求描述 被fork的项目有更新代码,希望把更新的代码merge到fork分支项目 解决方 ... 
- [从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务
		[从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务 目录 [从源码学设计]蚂蚁金服SOFARegistry 之 自动调节间隔周期性任务 0x00 摘要 0x01 业务领域 0 ... 
随机推荐
- 常用es6特性归纳-(一般用这些就够了)
			之前做vue和react的时候,发现文档什么的最新版本都建议用es6写法,对es6友好度更高,加之现在es6也越来越普及,兼容性问题直接用babel转码就好了,特别方便,于是我开始学着用es6写代码, ... 
- Gym - 102021E
			Gym - 102021Ehttps://vjudge.net/problem/2109787/origin主要是一个处理精度的技巧,避免精度误差可以加eps,然后乘1e(小数点之后的位数). #in ... 
- LUOGU 9月 月赛
			T1 签到题 传送门 解题思路 将原式化简一下,让n个1变成 (10^n-1)/9 ,然后再移项,变成了高次同余形式,用bsgs求解.交了好几次都是80,后来才被告知要快速乘. 代码 #include ... 
- 洛谷  P2886 [USACO07NOV]牛继电器Cow Relays
			题面 解题思路 ## floyd+矩阵快速幂,跟GhostCai爷打赌用不用离散化,最后完败..GhostCai真是tql ! 有个巧妙的方法就是将节点重新编号,因为与节点无关. 代码 #includ ... 
- mysql innodb 的 逻辑存储结构
			如上图: innodb 的 逻辑存储单元分成 表空间,段,区,页 4个等级 默认情况下,一个数据库 所有变共享一个 默认的表空间(tablespan).可以指定每个表一个表空间. 一个表空间管理着 多 ... 
- JS控制视频的播放
			在用js定时器控制视频时, html部分: <video id="video_1"> <source id="source_1" src=&q ... 
- Maven中央仓库地址大全,Maven中央仓库配置示例
			< Maven 中央仓库地址大全 > 在上一篇文章中完成了 < Maven镜像地址大全 >,后来又花了时间又去收集并整理了关于 maven 远程仓库地址,并整理于此,关于 Ma ... 
- springboot拦截器之验证登录
			添加jar包,这个jar包不是必须的,只是在拦截器里用到了,如果不用的话,完全可以不引入 <dependency> <groupId>org.apache.commons< ... 
- TZOJ 3522 Checker Challenge(深搜)
			描述 Examine the 6x6 checkerboard below and note that the six checkers are arranged on the board so th ... 
- Leetcode113. Path Sum II路径总和2
			给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 ... 
 
			
		