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. JAVA接口的继承与集合

    复习 20190701 接口补充 一. java是单继承多实现 单继承: 一个类只能有一个父类 public class D extends D1 { } 2. 多实现 一个类可以同时实现多个接口 当 ...

  2. HBase学习笔记一

    HBase简介 HBase概念 HBase的原型是谷歌的Bigtable论文 HBase是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC上搭建起大规模结构化存储集 ...

  3. Specifying the Code to Run on a Thread

    This lesson shows you how to implement a Runnable class, which runs the code in its Runnable.run() m ...

  4. Vue状态管理之Bus

    一般在项目中,状态管理都是使用Vue官方提供的Vuex 当在多组件之间共享状态变得复杂时,使用Vuex,此外也可以使用Bus来进行简单的状态管理 1.1 父组件与子组件之间的通信 vue.config ...

  5. HTML表单部分学习笔记

    第一部分: <!-- action :指定处理提交表单的格式 method :指定提交表单的http方法 enctype:指明用来把表单提交给服务器时的互联网媒体形式 --> <fo ...

  6. python的ORM技巧记录

    # -*- coding:utf-8 -*- from sqlalchemy import create_engine, Column, Integer, String, ForeignKey, In ...

  7. 个人永久性免费-Excel催化剂功能第84波-批量提取OUTLOOK邮件附件

    批量操作的事情常常能让人感到十分畅快,区别于一次次的手工的操作,它真正实现了“人工智能”想要的效果,人指挥机器做事情,机器就可以按着人意去操作.此篇给大家再次送了批量操作一绝活,批量下载OUTLOOK ...

  8. Kafka配置信息

    Kafka配置信息 broker配置信息 属性 默认值 描述 broker.id 必填参数,broker的唯一标识 log.dirs /tmp/kafka-logs Kafka数据存放的目录.可以指定 ...

  9. python函数对象-命名空间-作用域-02

    函数对象 函数是第一对象: # 函数名指向的值可以被当做参数传递 函数对象的特性(*****灵活运用,后面讲装饰器会用到) 函数名可以像变量一样被传递 # 变量可以被传递 name = 'jason' ...

  10. ping(网络诊断工具)

    ping(网络诊断工具) Ping是Windows下的一个命令,在Unix和Linux下也有这个命令.ping也属于一个通信协议,是TCP/IP协议的一部分.利用"ping"命令可 ...