TN2339: 使用 Xcode 命令行构建的常见问题

本文详细介绍了如何在macOS上安装、卸载和管理Xcode命令行工具,特别是在多个Xcode版本共存时的操作。此外,还讲解了如何使用xcodebuild进行项目构建、单元测试、Build For Testing以及Test Without Building等功能,适用于持续集成系统。最后,讨论了exportOptionsPlist文件的配置以及应用的归档和导出过程。
摘要由CSDN通过智能技术生成

Apple Developer Documentation Archive 是 Apple 已归档的开发者文档,具有很大的参考价值。adat 项目选取了一些典型文章进行翻译,摒弃了部分过时的内容,并在 Xcode 13.0 上进行实践。这是该项目的第一篇文章,后续文章将会逐步深入,探究使用命令行工具进行企业级构建的最佳实践。


内容概览

  • 命令行工具包是什么?
  • macOS 10.9 及以后的版本上的 Xcode 不再提供命令行工具下载入口,应该如何安装?
  • 如何卸载命令行工具?
  • 多个 Xcode 并存的情况下,如何查看命令行工具使用的 Xcode 版本?
  • 如何修改命令行工具使用的 Xcode 版本?
  • 如何使用命令行构建 Xcode 项目?
  • 如果有多个 Configurations ,如何给 xcodebuild 设置一个默认的 Configuration ?
  • 如何利用命令行实施单元测试?
  • 如何利用命令行实现 Xcode 中的 Build For Testing 和 Test Without Building 功能?
  • exportOptionsPlist 文件可以包含哪些配置?
  • 如何归档并导出应用?

命令行工具包是什么?

命令行工具包是一个小型的自包含工具包,可以独立下载,可以在 macOS 上进行命令行开发。它由 macOS SDK 和命令行工具(例如 Clang,位于 /Library/Developer/CommandLineTools)组成。


macOS 10.9 及以后的版本上的 Xcode 不再提供命令行工具下载入口,应该如何安装?

在 macOS 10.9 及以后的版本上,Xcode 的偏好设置中的下载面板不再支持命令行工具直接下载,可以使用下面任意一种方式来安装:

安装 Xcode

Xcode 已经包含命令行工具,因此只要安装了 Xcode,就无需额外安装命令行工具。

从 Apple 开发者网站下载

下载地址:https://developer.apple.com/download/all/,需要使用 Membership Account 登录,搜索并下载和系统版本匹配的命令行工具版本。
在这里插入图片描述

在 macOS 10.9 及以后,当有新的命令行版本可用时,将会收到软件更新的通知。

通过 Terminal 安装

在 Terminal 中执行如下命令进行安装:

xcode-select --install

macOS 自带 xcode-select 命令,在 /usr/bin 目录下。


如何卸载命令行工具?

  • 删除 Xcode 应用
  • 删除 /Library/Developer/CommandLineTools 目录

多个 Xcode 并存的情况下,如何查看命令行工具使用的 Xcode 版本?

在 Terminal 中执行如下命令:

xcode-select --print-path

示例:

$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer

表示当前命令行工具使用的Xcode位于 /Applications/Xcode.app


如何修改命令行工具使用的 Xcode 版本?

在 Terminal 中执行如下命令:

sudo xcode-select -switch <path/to/>Xcode.app

示例:

$ sudo xcode-select -switch /Applications/Xcode.app

如何使用命令行构建 Xcode 项目?

使用 xcodebuild 命令,它可以对 Xcode 项目和工作空间进行编译、查询、分析、测试和归档。如果操作的是 Xcode 项目,需要指定至少一个 target 或一个 scheme,而如果是工作空间,则只需指定一个 scheme。在 Terminal 中执行 man xcodebuild 可以查看 xcodebuild 使用手册。xcodebuild 执行的结果默认存储位置定义在:Xcode > Preferences > Locations。

注意:在执行命令前,要先切换到包含项目或工作空间的目录下,或指定完整的项目或工作空间的路径。

下面是一些用法举例:

列出工作空间包含的所有 scheme
xcodebuild -list -workspace <your_workspace_name>.xcworkspace

示例:

$ cd /Users/username/Desktop/MyApplication
$ xcodebuild -list -workspace MyApplication.xcworkspace
Information about workspace "MyApplication":
    Schemes:
        iOSApp
        tvOSApp
        macOSApp
        iOSWithWatchApp
        iOSWithWatchApp WatchKit App
列出项目包含的所有 target 、configuration 和 scheme
xcodebuild -list -project MyProject.xcodeproj

示例:

$ cd /Users/username/Desktop/MyProject
$ xcodebuild -list -project MyProject.xcodeproj
Information about project "MyProject":
    Targets:
        iOS
        iOSTests
        iOSUITests
        watchOS App
        watchOS App Extension
        tvOS
        tvOSTests
        tvOSUITests
        macOS
        macOSTests
        macOSUITests

    Build Configurations:
        Debug
        Release

 If no build configuration is specified and -scheme is not passed then "Debug" is used.

    Sch
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值