Xcodebuild简介
Xcodebuild是命令行工具包的其中一项。
命令行工具包(Command Line Tools)是一个轻量的、可以与XCode分开的、在Mac上单独下载的命令行工具包。
它有两部分组成:Mac OS SDK和用户系统库目录/usr/bin下的诸多命令工具。例如:gcc/g++编译器,make、git、nase、xcodebuild、xcrun等等。
 
命令行工具包(Command Line Tools)的安装
Xcode-select命令
xcode-select是Mac系统自带的命令行工具,属于用户系统内/usr/bin。当电脑上安装多个Xcode时,xcode-select用来选择命令行工具为哪一个版本的Xcode服务。
命令行工具安装指令:xcode-select --install
选择指定的Xcode路径:xcode-select --switch <path>
 
常见命令
man命令
man可以进行命令用法的在线文档查询,包括使用例子。比如:man xcodebuild。
 
xcpretty命令
命令行输出美化小工具,可以对错误,警告给予高亮显示。使用方式:xcodebuild | xcpretty
 
xcrun命令
xcrun用于调用其他命令执行,如:xcrun xcodebuild。
xcrun的调用是基于xcode-select选择的工具链,当电脑中存在多个版本的xcode时,使用xcrun调用可以保证命令的环境一致性。
 
xcodebuild命令
下面重点介绍xcodebuild如何使用。
在使用xcodebuild时,从终端进入到projectname .xcodeproj 目录下。
有workspace时,参数中要带-workspace和-scheme。
只有project时,则参数中要带 -project和-scheme选项。
xcodebuild在Xcode中存在的默认配置在路径project/info页面中

xcodebuild的常见使用场景
简单命令行build
xcodebuild

单写一个xcodebuild,工程编译使用默认的scheme和编译配置。
scheme、targets、配置、目标设备、SDK和导出数据位置可以在后面自定义配置

archive打包操作

xcodebuild archive  -workspace PROJECT_NAME.xcworkspace
-scheme SCHEME_NAME -configuration release -archivePath
EXPORT_ARCHIVE_PATH -archivePath:设置项目的归档路径

导出ipa文件

xcodebuild -exportArchive -archivePath EXPORT_ARCHIVE_PATH
-exportPath EXPORT_IPA_PATH -exportOptionsPlist ExportOptionsPlistPath
-allowProvisioningUpdates -exportArchive:导出ipa
-exportPath:导出ipa文件的路径
-exportOptionsPlist:文件导出时的配置信息
-allowProvisioningUpdates:允许xcodebuild与苹果网站通讯,进行自动签名,证书自动更新,生成。

单元测试

xcodebuild test -project PROJECT_NAME.xcodeproj -scheme SCHEME_NAME
-destination 'platform=iOS Simulator,name=iPhone 6s,OS=11.2' -
configuration Debug -derivedDataPath output -derivedDataPath:产生的缓存文件放在./output目录下
configuration:编译环境,选择Debug/Release
-destination :选择test时的目标设备和系统版本号
 UI测试/单元测试,针对某个方法进行测试
xcodebuild test -project PROJECT_NAME.xcodeproj -scheme SCHEME_NAME
-destination 'platform=iOS Simulator,name=iPhone 6s,OS=11.2'
-only-testing:TARGET_NAME/CLASS_NAME/FUNC_NAME -quiet -only-testing: 只测试某一个方法,target名/类名/方法名
-quiet : 除了错误和警告不打印任何信息
使用上次编译成功的测试用例进行测试
注意:app创建时需要指定app的bundle名
self.app = [[XCUIApplication alloc] initWithBundleIdentifier:@"com.xxx.id"];
[self.app launch];
1.UI测试/单元测试,不进行代码编译,利用上次编译的缓存(包括工程编译+测试用例编译),进行重新跑测试。
xcodebuild test-without-building -workspace PROJECT_NAME.xcworkspace
-scheme doctor -destination 'platform=iOS Simulator,name=iPhone 6s,OS=12.0'
-only-testing:TARGET_NAME/CLASS_NAME/FUNC_NAME
2.UI测试,使用选项-xctestrun生产测试文件,进行测试调试
//1.产生xctestrun文件
xcodebuild build-for-testing -project PROJECT_NAME.xcodeproj -scheme SCHEME_NAME
-destination 'platform=iOS Simulator,name=iPhone 6s,OS=11.2' -
configuration Debug -derivedDataPath output -derivedDataPath: derivedDataPath/Build/Products目录下生成一个.xctestrun文件,包含测试信息 //2.使用xctestrun文件(不带-workspace/-project/-scheme参数)
xcodebuild test-without-building -destination 'platform=iOS Simulator,name=iPhone 6s,OS=12.0'
-xctestrun DerivedDataPath.xctestrun -only-testing:TARGET_NAME/CLASS_NAME/FUNC_NAME -xctestrun:有这个选项就从指定的路径下寻找bundle,没有这个选项在derivedDataPath下寻找bundle
-only-testing:TARGET_NAME/CLASS_NAME/FUNC_NAME

xcodebuild常见action

另外一些常见的命令
 
genstrings 命令
本地化命令,根据指定的C/Object-C源文件生成.strings文件。
genstrings -a /path/to/source/files/*.m
ibtool 命令
本地化命令,作用于xib文件。
ibtool --generate-strings-file Localizable.strings en.lpoj/Interface.xib
文章参考:
 
 
 

Xcodebuild命令使用的更多相关文章

  1. 了解 xcodebuild 命令 ,自动打包ipa

    引用博客:http://blog.nswebfrog.com/2015/10/31/xcodebuild/ 在 iOS 开发中,如果需要把工程打包成 ipa 文件,通常的做法就是在 Xcode 里点击 ...

  2. iOS利用xcodebuild命令自动打包方法

    1,xcode项目先打包试一下可以打包成功 2,创建一plist导出文件 3,xcodebuild命令直接运行 导出文件内容: <?xml version="1.0" enc ...

  3. xcodebuild命令

    一.xcodebuild命令介绍 1.基本命令 查看xcodebuild简洁用法 xcodebuild -usage 查看已安装的SDK xcodebuild -showsdks 查看安装的版本号 x ...

  4. xcodebuild命令行打包发布ipa

    配置好证书,然后在命令行转到项目目录 1.清除 EthantekiiMac:CTest ethan$ xcodebuild clean 2.编译 EthantekiiMac:CTest ethan$ ...

  5. iOS Xcodebuild

    简介 xcodebuild 是苹果发布自动构建的工具.它在一个Xcode项目下能构建一个或者多个targets ,也能在一个workspace或者Xcode项目上构建scheme,总的来说,用它没错就 ...

  6. xcodebuild导出ipa方法

    xcode 5.x版本导出ipa是不需要开发者账号,而xcode6以后导出ipa必须要求选择开发者team,无法绕开,但我们使用xcodebuild命令行可以无视这个限制 环境: mac osx 10 ...

  7. iOS 应用打包命令一览

    文章转载自:http://www.jianshu.com/p/5d59966eaecc 文章排版部分根据自己的理解做了一些修改. 各种命令的简介 使用命令打包iOS 应用一般会用到 xcodebuli ...

  8. iOS 命令行打包--xcworkspace

    参考: 打包的具体操作步骤: https://www.jianshu.com/p/6a0aa8cd2e97 打包时使用到的参数详解,参考这篇: https://debugtalk.com/post/i ...

  9. tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

    在执行自动化打包的时候报错,检查发现是Xcode的路径被改了 标记3的地方原来默认是没有内容的,点击它,然后会自动弹出一个选项,就是xcode的版本. 修改后,在命令行输入xcodebuild命令测试 ...

随机推荐

  1. 基于SpringCloud的微服务架构实战案例项目,以一个简单的购物流程为示例

    QuickStart 基于SpringCloud体系实现,简单购物流程实现,满足基本功能:注册.登录.商品列表展示.商品详情展示.订单创建.详情查看.订单支付.库存更新等等. 每个业务服务采用独立的M ...

  2. break使用不当引发的一个“血案”

    最近在网上冲浪,读到一则新闻,摘抄下这则新闻: ======================= 以下文字摘抄自互联网==================== 1990年1月15日,AT&T电话 ...

  3. 个人永久性免费-Excel催化剂功能第55波-Excel批注相关的批量删除作者、提取所有批注信息等

    Excel里的批注,许多人很喜欢用,但批注真的值得我们大量使用吗?批注的使用场景在哪里?这些问题可能更值得花时间来思考下.同样因为不规范地使用批注,也带出了一大堆的后续擦屁股的事情来,从批注中找回有价 ...

  4. isinstance/type/issubclass的用法,反射(hasattr,getattr,setattr,delattr)

    6.23 自我总结 面向对象的高阶 1.isinstance/type/issubclass 1.type 显示对象的类,但是不会显示他的父类 2.isinstance 会显示的对象的类,也会去找对象 ...

  5. spring配置文件比较全的约束

    个人总结:Spring的配置文件applicationContext.xml约束文件.全面约束 <?xml version="1.0" encoding="utf- ...

  6. pyqt 主程序运行中处理其他事件(多线程的一种代替方式)

    一.实验环境 1.Windows7x64_SP1 2.Anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 4.通过Anacond ...

  7. JAVA开发异常处理十大秘诀

    1.前提 第一层:遇到异常首先必须告诉自己,冷静,不要慌.(一看到Bug就心慌,那么武功就施展不了了) 2.入门级 第二层:遇到Bug,第一潜意识看输出异常的信息的(控制台输出,Junit输出,页面输 ...

  8. Windows 设置自启动计划任务(非登录启动)

    原因:服务器会不定期重启,且重启后无人看管,不会有人去登录系统.导致我们做的一些开机启动程序失效,进而系统瘫痪. 解决方法: 自己理解,想要达到目的有两种方式:系统服务 & 计划任务配置. 计 ...

  9. 前端响应式のmedia文件分离

    响应式cssのmedia文件分离 media简介 1.媒体查询,添加自CSS3 2.一个媒体查询由一个可选的媒体类型和零个或多个使用媒体功能的限制了样式表范围的表达式组成,允许内容的呈现针对一个特定范 ...

  10. 安科 OJ 1190 连接电脑 (并查集)

    时间限制:1 s 空间限制:128 M 传送门:https://oj.ahstu.cc/JudgeOnline/problem.php?id=1190 题目描述 机房里有若干台电脑,其中有一些电脑已经 ...