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. 项目心得——mybatisplus注解

    最近在做的项目中使用了mybatisplus,遇到了一些小问题,特此记录. 1.在sql查询后返回的数据中,会存在一些实体类中本没有的字段: 遇到这个问题时,我理所当然的就去实体类中添加了这个字段,但 ...

  2. maven打包报错问题解析

    1. 场景描述 Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean (default-clea ...

  3. [HNOI2015]菜肴制作 题解(自带口胡证明)

    [HNOI2015]菜肴制作 时间限制: 1 Sec  内存限制: 512 MB 题目描述 知名美食家小 A被邀请至ATM 大酒店,为其品评菜肴. ATM 酒店为小 A 准备了 N 道菜肴,酒店按照为 ...

  4. redux、react-redux、redux-thunk、redux-saga使用及dva对比

    一.redux使用 Redux的核心概念其实很简单:将需要修改的state都存入到store里,发起一个action用来描述发生了什么,用reducers描述action如何改变state tree ...

  5. [记录]Python的master-worker和epoll模式

    #master-worker模型: #coding:utf-8 import os import sys import socket import time import traceback impo ...

  6. spring boot 整合lombok+tkmapper+mybatis-generator

      1.lombok <dependency>    <groupId>org.projectlombok</groupId>    <artifactId& ...

  7. dij模板

    #include<cstdio> #include<vector> #include<queue> using namespace std; struct edge ...

  8. 洛谷P2319 [HNOI2006]超级英雄 题解

    题目链接: https://www.luogu.org/problemnew/show/P2319 分析 每错,这是一道海南不对是河南呀呀呀错了是湖南的省选题. 但是还是可以作为二分图第二题来练手的, ...

  9. 软件测试必须掌握的linux命令大全

    测试工程师的四大基础技能:数据库.linux.网络协议.测试工具,不管是刚入门还是已经工作多年,这几个方向都是要掌握的.今天我们再讲一下测试工程师必须要掌握的linux命令. 测试工程师需要掌握lin ...

  10. Cesium 学习(一)环境搭建

    网上已有很多文章来教我们搭建Cesium的环境,我也没有必要再写一次:下面是我参照的文章的地址: 1.https://www.cnblogs.com/huqi-code/p/8287403.html  ...