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. 大数据 SQL Boy 脱坑指南

    不可否认的是 SQL 是一个伟大的发明,它让增删改查的操作更加地便捷化,而且 SQL 的学习成本相对其他编程语言来说较低,被逼到会写 SQL 的运营和产品我都见过不少... 大数据行业跟 SQL 更是 ...

  2. MyBatis 一对多映射

    From<MyBatis从入门到精通> <!-- 6.1.2.1 collection集合的嵌套结果映射 和association类似,集合的嵌套结果映射就是指通过一次SQL查询将所 ...

  3. [原创]mininet安装

    mininet安装: on Ubuntu 13.04: sudo apt-get install minineton Ubuntu 12.10: sudo apt-get install minine ...

  4. JAVA通过URL链接获取视频文件信息(无需下载文件)

    最近项目碰到一个大坑:APP上需要在获取视频列表时就获取视频的时长,但早期上传的时候数据库都没有保存这个数据,所以前段时间添加一个时长字段,在上传时手动输入视频时长,但是之前库中有上万条数据没这个信息 ...

  5. webService 的使用

    webService Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些 ...

  6. C#3.0新增功能09 LINQ 基础08 支持 LINQ 的 C# 功能

    连载目录    [已更新最新开发文章,点击查看详细] 查询表达式 查询表达式使用类似于 SQL 或 XQuery 的声明性语法来查询 IEnumerable 集合. 在编译时,查询语法转换为对 LIN ...

  7. iOS-监听原生H5性能数据window.performance

    WebKit-WKWebView iOS8开始苹果推荐使用WKWebview作为H5开发的核心组件,以替代原有的UIWebView,以下是webkit基本介绍介绍: 介绍博客 Webkit H5 - ...

  8. liunx软件安装与网络管理和远程访问

    三.软件安装1.RPM包管理器进行软件安装 语法:rpm[选项][软件包] -i 安装一个以前从来未安装过的软件包 -v 将安装过程打印在屏幕上 -h 以字符“#”显示安装进度条 rpm -q[软件包 ...

  9. vue-cli - webpack 打包兼容 360 浏览器和 IE 浏览器

    index.html增加一行代码 <head> <meta charset="utf-8"> <meta name="viewport&qu ...

  10. Unity3D热更新之LuaFramework篇[07]--怎么让unity对象绑定Lua脚本

    前言 在上一篇文章 Unity3D热更新之LuaFramework篇[06]--Lua中是怎么实现脚本生命周期的 中,我分析了由LuaBehaviour来实现lua脚本生命周期的方法. 但在实际使用中 ...