iOS自动构建以及打包命令(xcodebuild,xcrun)

两个命令的语法以及使用方法,资料比较多,到处都可以找到,比如:

iOS 自动构建命令——xcodebuild

基于xcodebuild和xcrun的自动化打包

iphone-命令行编译之--xcodebuild


xcodebuild负责将工程源文件编译成xxx.app
xcrun负责给xxx.app(签名并)打包成xxx.ipa

构建APP

xcodebuild(1) Mac OS X Developer Tools Manual Page

1. build Xcode项目

构建一个Xcode项目,在项目目录下运行xcodebuild就可以了

xcodebuild [-project projectname] [-target targetname ...] [-configuration configurationname]
            [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...]
            [-userdefault=value ...]

如果是单target单schema,直接xcodebuild不指定任何参数,就生成relaase版本真机模式的app

比如:



(1)"CompileC"使用"clang"编译每个文件



(2) "LD":链接成不同架构


(3) "lipo":创建通用库


(4) 处理资源

ibtool处理storyboard文件,actool处理Assets文件


(4) "dsymutil":生成dSYM文件


(5) 链接资源



(6) 签名、验证


至此,build结束


2. build workspace

如果要构建workspace,你必须指定-workspace-scheme参数

xcodebuild -workspace workspacename -scheme schemename [-destination destinationspecifier]
            [-destination-timeout value] [-configuration configurationname]
            [-sdk [sdkfullpath | sdkname]] [buildaction ...] [setting=value ...]
            [-userdefault=value ...]

比如:


注意:workepacename是指带 .xcworkspace后缀的完整名字


3. xcpretty

xcpretty is a fast and flexible formatter for xcodebuild

其实就是用来格式化(美化)xcodebuild命令行工具输出日志的一个小工具,安装命令:

gem install xcpretty

更多使用方法见项目首页: https://github.com/supermarin/xcpretty


xcodebuild输出日志如下图所示:



是不是“惨不忍睹”啊,那用 xcpretty表现一下吧,执行如下命令:

xcodebuild | xcpretty



打包IPA

xcrun工具


命令如下:
xcrun -sdk iphoneos PackageApplication -v 源app路径 -o 输出的ipa路径




最关键的就是zip,做下压缩处理

xcodebuild

其实从上面就可以看出,建议 PackageApplication用`xcodebuild -exportArchive`来替换

(1)执行 xcodebuild clean 进行清除

(2)执行 xcodebuild archive -scheme "xxx" -configuration "Release" -archivePath "xxx/1.xcarchive"
其中 scheme 参数需要对应到工程 mobile target 名称
configuration 为固定的 Release
archivePath 指定导出的 .xcarchive 文件的位置
这个命令就相当于Xcode中的"Archive"菜单


它和PackageApplication的不同之处在于:
PackageApplication基于生成的app打包,xcodebuild archive是基于源代码编译生成然后打包


(3) 执行 xcodebuild -exportArchive -archivePath "xxx/1.xcarchive" -exportPath "xxx/1.ipa" -exportFormat IPA -exportProvisioningProfile "XC: *"
其中 archivePath 跟上个命令参数对应
exportPath 为导出 ipa 文件的目录
exportForma IPA为固定值,
exportProvisioningProfile 是 provisioning profile 的名称,与创建工程时所选的 provisioning profile 有关

如果Xcode工程已经配置好了证书的话,exportProvisioningProfile参数可以不用添加
xcodebuild -exportArchive的功能跟xcrun PackageApplication一样




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值