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

2024-01-07 04:58

本文主要是介绍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-Apple Developer

命令如下:
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一样




这篇关于iOS自动构建以及打包命令(xcodebuild,xcrun)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/578798

相关文章

python项目打包成docker容器镜像的两种方法实现

《python项目打包成docker容器镜像的两种方法实现》本文介绍两种将Python项目打包为Docker镜像的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录简单版:(一次成功,后续下载对应的软件依赖)第一步:肯定是构建dockerfile,如下:第二步

Redis 命令详解与实战案例

《Redis命令详解与实战案例》本文详细介绍了Redis的基础知识、核心数据结构与命令、高级功能与命令、最佳实践与性能优化,以及实战应用场景,通过实战案例,展示了如何使用Redis构建高性能应用系统... 目录Redis 命令详解与实战案例一、Redis 基础介绍二、Redis 核心数据结构与命令1. 字符

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

idea-java序列化serialversionUID自动生成方式

《idea-java序列化serialversionUID自动生成方式》Java的Serializable接口用于实现对象的序列化和反序列化,通过将对象转换为字节流来存储或传输,实现Serializa... 目录简介实现序列化serialVersionUID配置使用总结简介Java.io.Seripyth

交换机救命命令手册! 思科交换机排障命令汇总指南

《交换机救命命令手册!思科交换机排障命令汇总指南》在交换机配置与故障排查过程中,总会遇到那些“关键时刻靠得住的命令”,今天我们就来分享一份思科双实战命令手册... 目录1. 基础系统诊断2. 接口与链路诊断3. L2切换排障4. L3路由与转发5. 高级调试与日志6. 性能与QoS7. 安全与DHCP8.

故障定位快人一步! 华为交换机排障命令汇总

《故障定位快人一步!华为交换机排障命令汇总》在使用华为交换机进行故障排查时,首先需要了解交换机的当前状态,通过执行基础命令,可以迅速获取到交换机的系统信息、接口状态以及配置情况等关键数据,为后续的故... 目录基础系统诊断接口与链路诊断L2切换排障L3路由与转发高级调试与日志性能、安全与扩展IT人无数次实战

Linux join命令的使用及说明

《Linuxjoin命令的使用及说明》`join`命令用于在Linux中按字段将两个文件进行连接,类似于SQL的JOIN,它需要两个文件按用于匹配的字段排序,并且第一个文件的换行符必须是LF,`jo... 目录一. 基本语法二. 数据准备三. 指定文件的连接key四.-a输出指定文件的所有行五.-o指定输出

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

java中ssh2执行多条命令的四种方法

《java中ssh2执行多条命令的四种方法》本文主要介绍了java中ssh2执行多条命令的四种方法,包括分号分隔、管道分隔、EOF块、脚本调用,可确保环境配置生效,提升操作效率,具有一定的参考价值,感... 目录1 使用分号隔开2 使用管道符号隔开3 使用写EOF的方式4 使用脚本的方式大家平时有没有遇到自

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal