首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xcodebuild分离生成目录

使用xcodebuild分离生成目录
EN

Stack Overflow用户
提问于 2011-02-11 14:08:37
回答 7查看 19.9K关注 0票数 18

xcodebuild的手册页内容如下:

从包含项目的目录(即包含projectname.xcodeproj包的目录)中运行xcodebuild。

我希望保持源目录(这是一个Subversion外部的)干净和未修改,并将我的对象文件和可执行文件构建到一个完全位于源目录之外的位置。

有没有任何方法可以像在xcodebuild上使用make工具甚至msbuild那样,从终端构建一个独立的构建目录?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-02-11 15:00:43

可以从命令行设置生成设置。CONFIGURATION_BUILD_DIR将设置构建目录。例如:

代码语言:javascript
复制
xcodebuild -project YourProject.xcodeproj -configuration Debug -target All ARCHS=x86_64 ONLY_ACTIVE_ARCH=YES CONFIGURATION_BUILD_DIR=../some/other/dir

在苹果的网站上有一个参考资料:

  • 生成设置参考
票数 37
EN

Stack Overflow用户

发布于 2016-02-26 22:13:08

为了实现完全分离,必须更改以下构建设置(不仅仅是CONFIGURATION_BUILD_DIR,就像已接受的答案所建议的那样),否则Xcode仍然会在其默认构建文件夹下构建它的一些工件。

在我的机器上,Xcode通常将所有内容构建为./Build./DerivedData,当前目录是我的项目之一。

我希望xcodebuild能够构建Build-command-line文件夹下的所有内容,所以我使用xcodebuild -scheme MyScheme -showBuildSettings | grep Build\/找到了所有与所有构建路径相对应的构建设置,通过尝试性错误,我找到了“生成性”构建设置,这些设置足以将所有的构建工具都重定向到自定义文件夹中。

最后,我使用了以下命令:

代码语言:javascript
复制
BUILD_DIR=./Build-command-line
DERIVED_DATA_DIR=$(BUILD_DIR)/DerivedData

xcodebuild -project MyProject.xcodeproj \
         -IDEBuildOperationMaxNumberOfConcurrentCompileTasks=`sysctl -n hw.ncpu` \
         -scheme MyScheme \
         -sdk iphonesimulator \
         -destination 'platform=iOS Simulator,name=iPhone 6S Plus,OS=latest' \
         -xcconfig command-line-build.xcconfig \
         -derivedDataPath $(DERIVED_DATA_DIR) \
         test

其中command-line-build.xcconfig是:

代码语言:javascript
复制
HERE_BUILD=$(SRCROOT)/Build-command-line
HERE_INTERMEDIATES=$(HERE_BUILD)/Intermediates

// Paths
// the following paths are enough to redirect everything to $HERE_BUILD
MODULE_CACHE_DIR    = $(HERE_BUILD)/DerivedData/ModuleCache
OBJROOT             = $(HERE_INTERMEDIATES)
SHARED_PRECOMPS_DIR = $(HERE_INTERMEDIATES)/PrecompiledHeaders
SYMROOT

注意:确保在xcconfig中使用绝对路径,否则可能会出现错误:在启动时Xcode崩溃“parentPath必须为零,但它不是

我写了一篇关于这个解决方案的文章,有一些背景:xcodebuild:如何真正更改其构建路径

当然,这个信息是可以改变的,但是到了Xcode Version 7.3.1 (7D1014)的时候,它对我来说是完美的。

票数 13
EN

Stack Overflow用户

发布于 2018-11-19 09:53:34

Xcode 10

对于工作区,如果您使用的是CocoaPods:

代码语言:javascript
复制
xcodebuild -workspace youProject.xcworkspace -scheme yourScheme -sdk iphonesimulator -configuration Release SYMROOT=$(PWD)/build

这将把您的.app放在./build/Release-iphonesimulator中。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4969932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档