用命令行自动打包成.ipa文件-完全攻略

场景

在我们将工程开发完成后,需要给客户看测试版本时,就需要给你客户ipa文件,用91助手安装。如果,是直接使用xcode来做的效率是非常低下的。当有一点小改动需要重新出包时,就需要人工再次重复打包过程,这样的工作,对于我们写程序的人来说,完成可以用程序搞定。所以,我们就应该结合我们的实际工作情况,做我们自己的自动打包工具。下面,我们就来对于核心的一些步骤,出来走几步。

准备

我们需要用到xcode的一些命令,所以,我们必须先安装Command Line Tools。
安装步骤如下:

1、xcode->preferences



2、选择Downloads


这里是已经安装的状态,如果你的是没有安装的,点击直接安装。

3、设置路径

安装好了之后,可能会出现如下的问题:
xcrun: Error: could not stat active Xcode path '/Volumes/Xcode/Xcode44-DP7.app/Contents/Developer'. (No such file or directory)
这个问题的出现,是因为命令行没有找到xcode的路径,需要在终端运行如下语句:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer 
ok,准备工作已经完成。

用命令行完成打包

1、用命令行找到工程文件。
我这里的工程文件是paytest。
下面我们clean一下工程。
输入命令行:xcodebuild clean,结果如下。

clean succeeded,clean成功。
xcodebuild build  同上。

下面是如何打包成ipa文件。这里需要介绍下xcrun。

此工具主要用于将app文件打包成ipa格式的程序包。(主要用于已越狱手机)。 具体用法如下:  1/usr/bin/xcrun -sdk iphoneos PackageApplication –v [{TARGET}.app] -o [{TARGET}.ipa] --sign [{Iphone Distribution:xxx}] –embed [{xxx.mobileprovision}] 其中:-v 对应的是app文件的绝对相对路径 –o 对应ipa文件的路径跟文件名 –sign 对应的是 发布证书中对应的公司名或是个人名 –embed 对应的是发布证书文件 注意如果对应的Distribution 配置中已经配置好了相关证书信息的话 –sign 和 –embed可以忽略 
打包命令:xcrun -sdk iphoneos packageapplication -v /Users/zcl/desktop/222/paytest/build/release-iphoneos -o /Users/zcl/desktop/testpay.ipa
获得的ipa文件。

入门
自动化编译脚本在网上已经有很多了,当然好处也是显而易见,可以让我们脱离xcode ide的编译,当然对于需要编译打包多个应用优势就很明显,避免了我们人为操作可能的出错,和机械重复的枯燥。

自动化编译所需要的命令
xcodebuild
xcrun

编译app文件sample
xcodebuild   -target yourapptarget -sdk iphoneos -configuration release 

编译带有签名的ipa文件sample
/usr/bin/xcrun -sdk iphoneos PackageApplication yourapp.app -o youripa.ipa --sign iPhone Distribution: your info --embed your mobileprovision 

合并i386 arm静态库
lipo -create yoursimlib yourarmlib -output ret.a

通过这样几条命令再加上简单的shell脚本 我们就很容易的可以定义我们自己定义脚本 用来编译静太库,bundle文件和我们的project。

小技巧
1.可能我们要取到xcodebuild编译完之后的状态来 决定我们下一步要做什么 或是做回显,我们可以有 #? 来取到上一条shell命令的执行结果 ,0 代表执行成功 非0代表执行失败 (这个非0值是不是对应着每个特定错误状态,具体还没有研究哈)

if [ $? != 0 ]

then

  sp_msg "FAILED"

  exit 1

fi


2.-sdk 命令对于iOS 为iphoneos ,iphonesimulator 或是 macosx 可以写成iphoneos6.0等来指定sdk版本,默认不写的话 就会匹配当前sdk的版本


当然对于现在的图书类等模板程序越来越多,简单的这几个-target参数已经无法满足我们的需要,因为我们可能需要更改程序的名称 版本 或者其他的标识符,所以我们需要用到-xcconfig这个参数来定制我们的buildsetting,在接下来的高阶讨论中我们就会对定制配置来做讨论。


 

最后,用手机助手安装,测试。

后记

这里只是对命令行打包做了一个简单的介绍,如果要做自动打包工具的话,那么这里已经完成了工作的核心部分了。其他的只需要配合自己的工程完成。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值