iOS打包ipa

这篇博客讲述了作者从手动打包iOS应用到使用命令行,再到Jenkins+fir.im自动化打包的历程。从最初的手动创建Payload文件夹、通过iTunes转换,到使用Makefile和XCode插件,最后实现Jenkins持续集成,自动打包和上传到fir.im进行分发。文章详细介绍了每个阶段的步骤和优化,强调了自动化打包的便利性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

iOS打包ipa


    iOS打包,无论是从平时的测试包,还是提交AppStore的正式包,或者企业包,每个开发都离不开打包。回想一下当初刚刚做开发时候还不知道如何将.app打包成ipa文件,感觉too young too simple。鉴于最近进化之地2的上线,让我又想起了该游戏的剧情,那么我现在也结合自己的经历,来说说自己的iOS打包史吧。

手动build时代

    刚刚工作的时候,也是没见过什么世面,在加上组内就我一个做iOS的,也没什么人可以交流,所以在打包这块,一直都是手动打包。我们知道iOS应用在普通build的时候产生的是.app,我们要提交测试的时候,需要选择好真机设备,通过Command+shift+I,进行一次Release build。之后在XCode的左侧项目导航栏的Products中右键XXX.app,选择show in Finder,然后再退到上一级目录,进入Release-iphoneos,中看到了XXX.app以及对应的符号表文件。

接下来就是把.app变成ipa的奇迹时刻了,当然这里有很多旁门左道。

  1. 新建一个文件夹名称叫"Payload",并且将.app拷贝到这个文件夹下面,压缩文件夹,修改后缀名为.ipa即可大功告成
  2. 将.app拖入itunes中,在itunes的应用中找到对应的app,再点击app拖出到桌面即可(目前itunes已经没有应用程序这一栏,该方法已不可用)
  3. XCode7及以前时代,可以通过Alcatraz给XCode安装AMAppExportToIPA插件,安装完在XCode的左侧项目导航栏Products中,右键XXX.app后,选择Export IPA即可。当然在这之前,需要修改scheme中的build configuration为Release。

这样大概就是之前打测试包的流程,全手工打造,无任何杂质。之后跟其他部门的同事交流了一下,发现可以通过命令行打包,于是就进入了下一个时代。

命令行打包时代

相信大家对于Makefile并不陌生,在学习Linux的时候就接触过,但是总是觉得设置make脚本很麻烦,况且当时都是基本上都是几个源文件的工程,而现在到了iOS打包,工程目录那么多,依赖库也不少,自己手写Makefile那不得累死。其实自己当时完全多虑了,XCode提供的命令行工具,几乎解决了所有能想到的问题,那么就开始打包吧。

  1. 首先执行Release Build
xcodebuild -project XXX.xcodeproj -sdk iphoneos -configuration Release;

这样就完事了,是不是so easy。

  1. 然后在工程根目录下找到./build/elease-iphoneos/目录,将XXX.app找到放到Payload目录下,通过zip命令生成ipa。
  2. 接着就是把ipa和符号表文件放到一个你想放到的目录下就好了。

打包就这么简单,不过这里面还有打包的命名,我们是通过应用名-版本号-日期-build号来命名的。

下面是打包的源码(XXX为工程名,我们代码管理是通过svn,所以REVISION获取的是svn版本号)。

BASE_NAME=XXX

MAIN_VERSION=4.1.0

DATE=$(shell date +%Y%m%d)

REVISION = $(shell svn info ./|grep "Last Changed Rev: "|cut -c 19-)

VERSION
Ipapy 是 iOS项目自动打包脚本1.脚本自动打包2.上传到fir.im3.发送邮件给测试人员需要安装的相关指令软件:1.python 2.72.xcode3.fir.im指令使用方法:1.安装xcode2.安装fir.im的指令,安装方法见 https://github.com/FIRHQ/fir-cli/blob/master/README.md3.配置相关信息 python ipa.py -c 或者 python ipa.py --configtargetName:工程的名称,如:我的工程是BossZP.xcodeproj,所以我的targetName就是BossZPgitPath:工程的git地址,如:我的git地址是http://git.xxx.org/xxxxxx/xxxxxx.gitcertificateName:证书名称,如:我的是iPhone Developer: YANG YU (7XC3UZCAZM)firToken:在fir.im上创建应用后的token,如:我的是2ac8uf3j9z3ur98d7gxxxxxxxx下面的是邮件设置:emailFromUser:我的邮箱,如:xxxxxx@163.comemailToUser:测试人员的邮箱,如 xxxxxx@163.comemailPassword:我的邮箱的密码emailHost:邮箱的host,可以去邮箱网页查看,如:我的是smtp.163.comkeychainPassword:(选填)远程SSH连接打包的话需要设置这个参数,内容为你电脑的密码4.配置完信息,可以通过 --help 或者 -h 查看基本的使用方法-h, --help            查看帮助信息-c, --config          配置基本信息-s, --showTags        显示git上所有的版本-t TAG, --tag=TAG     设置打包时的版本● 如果你不喜欢我把放在Documents下面,你可以把脚本的第28行改成你喜欢的目录,如:target_path = "/Users/yuyang/clone/BossZP"你可以这样使用:python ipa.py -hpython ipa.py --helppython ipa.py -cpython ipa.py --configpython ipa.py -spython ipa.py --showTagspython 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) 标签:Ipapy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值