一、xcodebuild命令介绍

 1.基本命令

  • 查看xcodebuild简洁用法

    xcodebuild -usage

  • 查看已安装的SDK

    xcodebuild -showsdks

  • 查看安装的版本号

    xcodebuild
    -version
    [-sdk [<sdkfullpath>|<sdkname>] [<infoitem>] ]

  • 查看项目中的Targets、Configurations和Schemes

    xcodebuild
    -list
    [[-project <projectname>]|[-workspace <workspacename>]] 

  • Archive

    xcodebuild
    archive -archivePath <archivePath>
    -project <projectName>
    -scheme <schemeName> #从-list命令中获取
    -configuration < Debug|Release>
    -sdk <sdkName> #sdkName可从showsdks命令中获取

  • 导出Archive

    xcodebuild
    -exportArchive
    -archivePath <xcarchivepath>
    -exportPath <destinationpath>
    -exportOptionsPlist <plistpath>#这个plist文件可以通过打一次ipa包里面去获取,然后根据需求修改

  • exportLocalizations

    xcodebuild
    -exportLocalizations
    -localizationPath <path>
    -project <projectname>
    [-exportLanguage <targetlanguage>...]

  • importLocalizations

    xcodebuild
    -importLocalizations
    -localizationPath <path>
    -project <projectname>
    

2.可选命令

可选命令 命令说明
-usage 查看xcodebuild简洁的用法
-help 查看帮助
-verbose 提供额外的状态输出
-license 显示Xcode和SDK许可协议
-checkFirstLaunchStatus 检查是否有任何初启动任务需要执行
-project NAME 编译项目名称,例如:xcodebuild -project XXX.xcodeproj
-target NAME 编译目标名称
-targets 编译全部目标
-workspace NAME 编译工作空间名称
-scheme NAME 编译计划名称
-configuration NAME 为构建每一个目标使用build配置名称
-xcconfig PATH 在PATH作为替代应用文件中定义的构建设置
-arch ARCH 建立每个目标的架构ARCH;这将覆盖在项目中定义的架构
-sdk SDK 使用指定的SDK编译项目
-toolchain NAME 使用工具链与标识或名称
-destination DESTINATIONSPECIFIER 使用由目标说明(用逗号分隔的一系列的key =描述目的地使用值对)中描述的目的地
-destination-timeout TIMEOUT 等待TIMEOUT秒,而搜索的目标设备
-parallelizeTargets 建立并行独立目标
-jobs NUMBER 指定并发生成操作的最大数量
-dry-run 做一切,除了实际运行的命令
-hideShellScriptEnvironment 不显示在构建日志shell脚本中的环境变量
-showsdks 显示已安装的SDK的列表
-showBuildSettings 显示构建设置和值的列表
-list 列出了在一个工作空间中的一个项目的目标和配置,或方案
-find-executable NAME 在所提供的SDK和工具链显示的完整路径可执行文件名称
-find-library NAME 在所提供的SDK和工具链显示的完整路径库名
-version 显示的Xcode的版本;与-sdk将显示一个或所有已安装的SDK信息
-enableAddressSanitizer YES/NO 测试时打开或关闭地址过滤
-resultBundlePath PATH 指定在描述什么发生了捆绑的结果将被放置的目录
-derivedDataPath PATH 指定的目录中生成产品和其他衍生数据会
-archivePath PATH 被指定任何创建的档案将被放置的目录,或应导出存档
-exportArchive 指定归档应导出
-exportOptionsPlist PATH 指定用于配置归档导出plist文件的路径
-enableCodeCoverage YES/NO 打开代码覆盖率或关闭时的测试
-exportPath PATH 指定从存档导出的产品的目标
-skipUnavailableActions 指定不能执行计划的行动应被跳过而不是导致失败
-exportLocalizations 出口完成优秀项目本地化
-importLocalizations 进口本地化项目,假设任何必要的本地化资源在Xcode中已创建
-localizationPath 指定XLIFF本地化文件路径
-exportLanguage 规定包括在本地化出口多个可选ISO 639-1语言

3.exportOptionsPlist文件内容配置说明

Key 类型 value 说明
compileBitcode Bool For non-App Store exports, should Xcode re-compile the app from bitcode? Defaults to YES 对于非App Store的出口,应重新编译Xcode中从bitcode应用程序?默认为YES

embedOnDemandResources

AssetPacksInBundle

Bool For non-App Store exports, if the app uses On Demand Resources and this is YES, asset packs are embedded in the app bundle so that the app can be tested without a server to host asset packs. Defaults to YES unless onDemandResourcesAssetPacksBaseURL is specified 对于非App Store的出口,如果应用程序使用按需的资源,这是YES,资产包被嵌入在应用程序包,使应用程序可以在没有服务器托管资产包进行测试。默认为YES除非指定onDemandResourcesAssetPacksBaseURL
iCloudContainerEnvironment For non-App Store exports, if the app is using CloudKit, this configures the "com.apple.developer.icloud-container-environment" entitlement. Available options: Development and Production. Defaults to Development 对于非App Store的出口,如果应用程序使用CloudKit,这种配置“com.apple.developer.icloud容器环境”的权利。可用选项:开发和生产。默认为发展
manifest Dictionary For non-App Store exports, users can download your app over the web by opening your distribution manifest file in a web browser. To generate a distribution manifest, the value of this key should be a dictionary with three sub-keys: appURL, displayImageURL, fullSizeImageURL. The additional sub-key assetPackManifestURL is required when using on demand resources 对于非App Store的出口,用户可以通过在Web浏览器中打开您的分发清单文件下载你的应用程序在网上。要生成分布明显,此键的值应该是有三个子键的字典:appURL,displayImageURL,fullSizeImageURL。额外的子键assetPackManifestURL是按需使用资源时,需要。
method String Describes how Xcode should export the archive. Available options: app-store, ad-hoc, package, enterprise, development, and developer-id. The list of options varies based on the type of archive. Defaults to development Xcode中描述如何导出存档。可用选项:应用程序商店,即席,包装,企业发展,开发人员ID。选项列表会有所不同根据存档的类型。默认为发展

onDemandResourcesAssetP

acksBaseURL

String For non-App Store exports, if the app uses On Demand Resources and embedOnDemandResourcesAssetPacksInBundle isn't YES, this should be a base URL specifying where asset packs are going to be hosted. This configures the app to download asset packs from the specified URL 对于非App Store的出口,如果应用程序使用按需资源embedOnDemandResourcesAssetPacksInBundle不是YES,这应该是一个基本URL指定,其中资产包将要举行。该配置应用从指定的URL下载资产包
teamID String The Developer Portal team to use for this export. Defaults to the team used to build the archive 开发者门户网站团队使用这个出口。默认为球队用来建立档案
thinning String For non-App Store exports, should Xcode thin the package for one or more device variants? Available options: <none> (Xcode produces a non-thinned universal app), <thin-for-all-variants> (Xcode produces a universal app and all available thinned variants), or a model identifier for a specific device (e.g. "iPhone7,1"). Defaults to <none> 对于非App Store的出口,Xcode中应该薄包一个或多个设备的变种?可用选项:<无>(Xcode中产生的非变薄普遍的应用程序),<薄参加的所有变体>(Xcode中产生一个通用的应用程序以及所有可用的变薄变型),或针对特定设备型号标识(例如“ iPhone7,1“)。默认为<无>
uploadBitcode Bool For App Store exports, should the package include bitcode? Defaults to YES 对于App Store的导出,应包包括bitcode?默认为YES
uploadSymbols Bool For App Store exports, should the package include symbols? Defaults to YES 对于App Store的出口,应包包含符号?默认为YES

二、xcodebuild命令实际应用

1.清除编译过程生成文件

xcodebuild clean
-workspace <xxx.workspace>
-scheme <schemeName>
-configuration <Debug|Release>
-sdk<sdkName>

2.编译命令

xcodebuild build
-workspace <xxx.workspace>
-scheme <schemeName>
-configuration <Debug|Release>
-sdk<sdkName>

3.编译并生成.xcarchive包

xcodebuild archive
-archivePath <archivePath> #生成的.xcarchive包存放路径
-workspace <XXX.xcworkspace>
-scheme <schemeNmae>
-configuration <Debug|Release>
-sdk <sdkName>

4.生成的.archive包导出成ipa文件

xcodebuild  -exportArchive
-archivePath <archivePath> #.archive文件的全路径 eg: .../.../XXX.xcarchive
-exportPath <exportPath> #ipa文件导出路径
-exportOptionsPlist <exportOptionsPlistPath> #exportOptionsPlist文件全路径 eg: .../.../XXX.plist

exportOptionsPlist文件示例:详细配置请参考上面exportOptionsPlist文件内容配置说明

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><key>compileBitcode</key><false/><key>method</key><string>development</string><key>provisioningProfiles</key><dict><key>com.669.yanyou</key><string>yanyou_dev</string></dict><key>signingCertificate</key><string>F13EE282147D6ED2CD5ACEEF20476B39C87AEAAC</string><key>signingStyle</key><string>manual</string><key>stripSwiftSymbols</key><true/><key>teamID</key><string>HW9U4B8YY9</string><key>thinning</key><string><none></string>
</dict>
</plist>

苹果官方xcodebuild命令文档

转载于:https://www.cnblogs.com/liuluoxing/p/8622108.html

xcodebuild命令相关推荐

  1. Xcode创建的工程使用xcodebuild命令行编译

    Xcode创建的工程使用xcodebuild命令行编译 1.确保xcodebuild能够正常运行 如果使用xcodebuild命令出现如下错误: could not stat active Xcode ...

  2. 如何让php执行xcodebuild,Xcodebuild命令使用

    Xcode-select命令 xcode-select是Mac系统自带的命令行工具,属于用户系统内/usr/bin.当电脑上安装多个Xcode时,xcode-select用来选择命令行工具为哪一个版本 ...

  3. Xcode编译没问题而使用xcodebuild命令却生成失败

    可能大家在项目开发中有时会遇到这样的问题: 明明在Xcode工具中编译没问题,但当使用xcodebuild命令时却无法正常打包,这是为什么呢? 一.错误 比如,一个错误如下: xxx/ViewCont ...

  4. iOS 测试 xcodebuild 命令行打包遇到的坑与解决方案 2017

    第一个问题 ** INTERNAL ERROR: Uncaught exception ** Uncaught Exception: -[__NSCFString objectForKeyedSubs ...

  5. Xcode9 xcodebuild 命令行打包遇到的坑与解决方案

    主要涉及的打包脚本命令 if [ $xcodeversion -lt 830 ] then #Xcode 8.3 以下打包时使用该脚本 xcodebuild -exportArchive -expor ...

  6. iOS自动化之打包-xcodebuild命令行打包.app并安装到ios模拟器

    1.目的 做ios ui自动化测试过程中,想通过试验命令行自动打包到特定的ios模拟器,以便后期集成到shell脚本 2.思路 先了解下整个手动安装包的流程,开发用xcode写完代码,并编译就可以打出 ...

  7. xcodebuild命令的使用

    最近再看xcodebuild使用,毕竟个人感觉命令行的方式比在界面上来的快,这里记录了一下心得. 首先,终端输入 man xcodebuild 下面是man输出的文档,大致做了一下重点 xcodebu ...

  8. 与 xcodebuild 命令有关的目录

    1. 默认设置 build 过程中生成的中间文件.日志和可执行文件,默认都存放在: ```shell ~/Library/Developer/Xcode/DerivedData/ProjName-ha ...

  9. iOS持续集成-Xcodebuild命令

    为什么 打包一般使用GUI操作进行.但是对于复杂工程还是繁琐.比如同一个工程对应多个target,多个scheme,多个证书.另外对于持续化集成还不足够,所以需要使用Xcodebuild进行脚本化. ...

最新文章

  1. 基于DL的计算机视觉方法热度高涨,传统方法就可以偏废?
  2. VMware vCenter 6.0 安装及群集配置介绍
  3. 基于STM32的DS1302时钟芯片驱动
  4. Android开发中遇到的bug
  5. python 常量_大疆机甲大师Python开发: 两只老虎
  6. REST设计模式简介
  7. 搭建MySQL+MHA服务易错位置
  8. python做excel数据分析统计服_Python也能做到Excel那样,条件统计轻松解决工作需求...
  9. 两边定宽,中间自适应布局的四种实现方法
  10. ajax表单提交post(错误400) 序列化表单(post表单转换json(序列化))
  11. ISIS路由聚合实验
  12. 【C语言练习——打印空心下三角及其变形】
  13. 虚拟机服务器都使用的机械硬盘吗,云服务器 有机械硬盘吗
  14. 微云为您讲述陌陌是如何布局“智慧商城”
  15. Ryujinx - 基于 C# 开发的任天堂 Switch 模拟器
  16. Qt学习总结之QTableWidget表格填充
  17. 【技术干货】聊聊在大厂推荐场景中embedding都是怎么做的
  18. 查看电脑是几核几线程
  19. PVZ的建国保龄球?
  20. CVE-2018-4990 漏洞详情分析

热门文章

  1. aso优化师是什么_【aso优化师赵星凯】简述为什么要做aso?
  2. 快速了解sealed关键字
  3. 图中几个常见算法总结
  4. 接口与抽象类的区别,为什么要用接口,抽象类不香吗?
  5. vue2之v-for详解
  6. python实例-银行管理系统(特简单的那种)
  7. 【Linux】alias及设置
  8. MPU6050的dmp代码移植的过程--转
  9. supervisor 使用
  10. JS之解构( Destructuring)