xcodebuild 使用手册

本文详细介绍了 xcodebuild 的使用方法,包括基本命令、参数选项、常见操作如编译、清理项目等,并提供了通过 SSH 连接进行远程构建的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

   
localhost:bin han $ xcodebuild - h xcodebuild: error: invalid option ' - h' Usage: xcodebuild [ - project <projectname > ] [[ - target <targetname > ]... |- alltargets] [ - configuration <configurationname > ] [ - arch <architecture > ]... [ - sdk [<sdkname >| <sdkpath > ]] [<buildsetting >= <value > ]... [<buildaction > ]... xcodebuild - workspace <workspacename > - scheme <schemeName > [ - configuration <configurationname > ] [ - arch <architecture > ]... [ - sdk [<sdkname >| <sdkpath > ]] [<buildsetting >= <value > ]... [<buildaction > ]... xcodebuild - version [ - sdk [<sdkfullpath >| <sdkname > ] [<infoitem > ] ] xcodebuild - list [[ - project <projectname > ] | [ - workspace <workspacename > ]] xcodebuild - showsdks Options: - usage print full usage - verbose provide additional status output - project NAME build the project NAME - target NAME build the target NAME - alltargets build all targets - workspace NAME build the workspace NAME - scheme NAME build the scheme NAME - configuration NAME use the build configuration NAME for building each target - xcconfig PATH apply the build settings defined in the file at PATH as overrides - arch ARCH build each target for the architecture ARCH; this will override architectures defined in the project - sdk SDK use SDK as the name or path of the base SDK when building the project - parallelizeTargets build independent targets in parallel - jobs NUMBER specify the maximum number of concurrent build operations - showsdks display a compact list of the installed SDKs - list lists the targets and configurations in a project, or the schemes in a workspace - find BINARY display the full path to BINARY in the provided SDK - version display the version of Xcode; with - sdk will display info about one or all installed SDKs

显示xcodebuild version

[yarshure@MacPro]%xcodebuild -version

Xcode 3.1.1

Component versions: DevToolsCore-1114.0; DevToolsSupport-1102.0

BuildVersion: 9M2517

 

显示当前系统安装SDK

[yarshure@MacPro]%xcodebuild -showsdks

iPhone OS Simulator SDKs:

        Simulator - iPhone OS 2.0       -sdk iphonesimulator2.0

        Simulator - iPhone OS 2.1       -sdk iphonesimulator2.1

 

iPhone OS Device SDKs:

        Device - iPhone OS 2.0          -sdk iphoneos2.0

        Device - iPhone OS 2.1          -sdk iphoneos2.1

 

Mac OS X SDKs:

        Mac OS X 10.4                   -sdk macosx10.4

        Mac OS X 10.5                   -sdk macosx10.5

显示当前目录下project Information

[yarshure@MacPro]%xcodebuild -list

Information about project "BookOO":

    Targets:

        BookOO (Active)

 

    Build Configurations:

        Debug (Active)

        Release

 

    If no build configuration is specified "Release" is used.

使用 iphonesimulator2.1build project

    
[yarshure @ MacPro] % xcodebuild - sdk iphonesimulator2. 1 === BUILDING NATIVE TARGET BookOO OF PROJECT BookOO WITH THE DEFAULT CONFIGURATION (Release) === Checking Dependencies... ...... ...... Touch / Users / yarshure / Desktop / BookOO / build / Release - iphonesimulator / BookOO.app cd / Users / yarshure / Desktop / BookOO / usr / bin / touch - c / Users / yarshure / Desktop / BookOO / build / Release - iphonesimulator / BookOO.app ** BUILD SUCCEEDED ** clean Target [yarshure @ MacPro] % xcodebuild clean - sdk iphonesimulator2. 1 - configuration = Debug === CLEANING NATIVE TARGET BookOO OF PROJECT BookOO WITH THE DEFAULT CONFIGURATION (Release) === Checking Dependencies... Clean.Remove clean / Users / yarshure / Desktop / BookOO / build / Release - iphonesimulator / BookOO.app / bin / rm - rf / Users / yarshure / Desktop / BookOO / build / Release - iphonesimulator / BookOO.app Clean.Remove clean / var / folders / 9j / 9jS16 - DSHs07FniFobQ7Bk +++ TI /- Caches -/ com.apple.Xcode. 501 / SharedPrecompiledHeaders / BookOO_Prefix - eizrpbwsixzcdogzigrqutwuvbzo / BookOO_Prefix.pch.gch / bin / rm - rf / var / folders / 9j / 9jS16 - DSHs07FniFobQ7Bk +++ TI /- Caches -/ com.apple.Xcode. 501 / SharedPrecompiledHeaders / BookOO_Prefix - eizrpbwsixzcdogzigrqutwuvbzo / BookOO_Prefix.pch.gch Clean.Remove clean / Users / yarshure / Desktop / BookOO / build / Release - iphonesimulator / BookOO.app.dSYM / bin / rm - rf / Users / yarshure / Desktop / BookOO / build / Release - iphonesimulator / BookOO.app.dSYM Clean.Remove clean / Users / yarshure / Desktop / BookOO / build / BookOO.build / Release - iphonesimulator / BookOO.build / bin / rm - rf / Users / yarshure / Desktop / BookOO / build / BookOO.build / Release - iphonesimulator / BookOO.build ** CLEAN SUCCEEDED **

 From SSH Connection Build Xcode iPhone Project

使用ssh client login Develope Machine

2 $cd iPhone App directory

3 $xcodebuild

一般CodeSign 会抱错,消息如下

    
CodeSign / Users / yarshure / proj / BookOO090215 / build / Release - iphoneos / BookOO.app     cd / Users / yarshure / proj / BookOO090215     / usr / bin / codesign -f - s " iPhone Developer: xiangbo kong " -- resource - rules =/ Users / yarshure / proj / BookOO090215 / build / Release - iphoneos / BookOO.app / ResourceRules.plist -- entitlements / Users / yarshure / proj / BookOO090215 / build / BookOO.build / Release - iphoneos / BookOO.build / BookOO.xcent / Users / yarshure / proj / BookOO090215 / build / Release - iphoneos / BookOO.app / Users / yarshure / proj / BookOO090215 / build / Release - iphoneos / BookOO.app: User interaction is not allowed. ** BUILD FAILED **

解决办法

  使用security 命令行工具

$security unlock-keychain

重新执行

$xcodebuild

CodeSign 输出

    
CodeSign / Users / yarshure / proj / BookOO090215 / build / Release - iphoneos / BookOO.app cd / Users / yarshure / proj / BookOO090215 / usr / bin / codesign -f - s " iPhone Developer: xiangbo kong " -- resource - rules =/ Users / yarshure / proj / BookOO090215 / build / Release - iphoneos / BookOO.app / ResourceRules.plist -- entitlements / Users / yarshure / proj / BookOO090215 / build / BookOO.build / Release - iphoneos / BookOO.build / BookOO.xcent / Users / yarshure / proj / BookOO090215 / build / Release - iphoneos / BookOO.app ** BUILD SUCCEEDED **

6 ** BUILD SUCCEEDED ** 收工

在 Ubuntu 系统中,`xcodebuild` 是 macOS 平台特有的工具,无法直接运行于 Linux 或其他非 Apple 的操作系统之上。这是因为 `xcodebuild` 高度依赖 macOS 和 Xcode 提供的特定环境以及库支持[^1]。 然而,可以通过一些替代方案来实现类似的构建功能: ### 替代方法一:使用 Docker 模拟 macOS 环境 Docker 可以通过容器化技术模拟一个接近真实的 macOS 开发环境。虽然官方不提供 macOS 的镜像,但社区中有许多开源项目可以帮助创建这样的环境。以下是具体操作方式: #### 步骤说明 1. **安装 Docker**:如果尚未安装 Docker,请先完成安装。 ```bash sudo apt update && sudo apt install docker.io ``` 2. **拉取 macOS Docker 镜像**:可以从 GitHub 上找到由开发者维护的相关镜像。 ```bash docker pull tonistiigi/osx-cross:latest ``` 3. **启动容器并执行 xcodebuild 命令**: ```bash docker run -it --rm tonistiigi/osx-cross bash xcodebuild -version ``` 此过程允许你在类 macOS 环境下测试和运行 `xcodebuild`[^2]。 --- ### 替代方法二:跨平台 CMake 构建系统 对于希望兼容多平台的应用程序开发而言,CMake 是一种更通用的选择。它能够生成适用于不同系统的 Makefile 文件或其他构建脚本。 #### 使用案例 假设有一个简单的 Swift 项目,则可通过如下方式进行设置: ```cmake # CMakeLists.txt 示例 cmake_minimum_required(VERSION 3.18) project(MySwiftProject LANGUAGES Swift) add_executable(${PROJECT_NAME} main.swift) ``` 接着利用以下命令完成整个流程: ```bash mkdir build && cd build cmake .. make ./MySwiftProject ``` 这种方法摆脱了对单一平台工具链(如 `xcodebuild`)的绑定需求。 --- ### 替代方法三:借助虚拟机或远程服务 另一种可行的办法是搭建一台专门用于 iOS/macOS 应用开发的 Mac 虚拟主机或者租赁云服务器资源。例如 AWS EC2 实例提供了预装好 Xcode 的 AMI 映像;又或者是采用第三方 CI/CD 解决方案比如 Bitrise、AppCenter 来处理这些复杂场景下的自动化部署工作流。 --- 尽管如此,在纯 Linux 下原生调用真正的 `xcodebuild` 几乎是不可能的任务,除非完全重构它的底层逻辑使之适应新架构——而这显然超出了大多数用户的实际能力范围之外[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值