【iOS】自动化打包

平台:Mac 终端工具
终端命令行工具可以帮助我们实现自动化打包。


命令工具
xcode-select [options]
  • 输出有效地开发者目录,这个目录是/Applications/Xcode.app/Contents/Developer,存在xcode安装目录下,它决定了xcode终端命令行指令应该调用哪个工具(如:xcodebuild指令,调用的是/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild),以及系统命令需要调用的一些工具。
    # xcode-select -p
  • 如果安装了多个版本的xcode工具,可以使用xcode-select命令指定命令行指令使用哪个版本xcode下的developer目录�下的调试工具。
    # xcode-select --switch /Applications/Xcode2.app/Contents/Developer

例:
# xcode-select -p
输出终端命令行工具当前默认Xcode.app的developer路径

# xcode-select --switch /Applications/Xcode.app/Contents/Developer
选择Xcode.app安装目录下的developer目录作为终端命令行默认调用路径

# xcode-select --switch /Applications/Xcode.app
功能同上,xcode-select命令会自动补齐developer目录

# /usr/bin/xcodebuild# xcodebuild
不进入到Xcode.app的developer目录,即目录外运行xcodebuild命令

# /usr/bin/xcrun --find xcodebuild# xcrun -f xcodebuild
定位xcodebuild工具在developer目录中的路径

# env DEVELOPER_DIR="/Applications/Xcode-2.app" /usr/bin/xcodebuild
功能等同于使用xcode-select转换,这里使用改变环境变量的方法转换developer目录,将/usr/bin/xcodebuild指向/Applications/Xcode-2.app,然后命令会自动补齐developer目录。使用** echo $PATH**查看环境变量如下:

打印环境变量.png

可以看到,/usr/bin目录已经默认添加到了系统环境变量中,所以使用xcodebuild指令等同于使用/usr/bin/xcodebuild指令。
注:一般转换了默认developer目录后,会自动关联到环境变量中。

更多信息请查看** man xcode-select **

xcrun [options] <tool name> ... arguments ...

注:中括号表示可选,尖括号表示必选
xcrun工具可以让我们在终端命令行中调用开发者工具

  • 从默认的开发者目录中查找或执行 <tool name>中指定的工具,具体是操作属性有[options]指定。如:-f 查找并输出路径 -r 查找并执行

例:
# xcrun --find clang
查找并输出当前默认SDK的二进制编译器路径。

# xcodebuild -showsdks
列出Xcode知道的所有有效地SDK

# xcrun --sdk iphoneos --find texturetool
指定查找并输出iOS SDK下的texturetool(纹理处理插件)的路径。

# xcrun --sdk macosx --show-sdk-path
指定打印当前Mac系统对应SDK的安装位置

# xcrun git status
查找git命令并执行查看它的状态

xcodebuild
  • 编译xcode项目或编译使用cocoapods管理的项目。

�示例:
# cd iosProjectFile/
进入到你的iOS项目目录(包含name.xcodeproj的目录)

进入项目.png

# xcodebuild clean install
清空上一次的编译目录,当编译命令运行后默认使用工程的第一个taget目标文件打包安装。

# xcodebuildxcodebuild -project name.xcodeproj
编译当前项目目录下的name.xcodeproj工程包,当目录下有多个.xcodeproj文件时,需要用-project选项指定选择哪个.xcodeproj文件进行编译。

默认情况下,xcodebuild编译的时候使用的是第一个目标文件target和默认的配置configuration

# xcodebuild -list
列出编译设置列表,查看target、configuration、scheme,经常和-project -worksapce -scheme配合起来使用

设置列表.png

# xcodebuild -workspace app.xcworkspace -scheme app
cocoapods管理的项目编译打包方式,-workspace -scheme必须同时设置正确

编译成功会有如下提示


�app.xcworkspace打包.png

# xcodebuild -workspace app.xcworkspace -scheme app archive -archivePath dir/archivePath/MyAPP.xcarchive
归档打包命令,成功会生成一个.xcarchive的文件

�归档成功提示.png

�归档文件.png

# xcrun -sdk iphoneos PackageApplication dir/ArchivePath/MyApp_debug.xcarchive/Products/Applications/app.app -o dir/Ipa/myapp_debug.ipa
使用xcrun命令打包ipa文件, .app文件通过显示.xcarchive文件报内容获得

输出ipa包.png

注意事项:

  • 实际打包过程中,使用xcodebuild归档.xcarchive和xcrun打包.ipa文件即可,注意每次打新包前先clean,归档路径和输出路径要正确
  • 如果需要指定发布版本,请使用-configuration选项指定,更改sdk请使用help或man查看帮助信息。

参考文件:
xcArchive To Ipa
man命令手册

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容