Xcode 4-构建输出目录


217

我在Xcode4(测试版5)中设置/定位输出文件时遇到问题。它们被放置在中的某个位置~/Library/Developer/ugly_path/...。我什至无法在我的产品上选择“在查找器中显示”。对于简单的C项目,Foundation工具甚至Cocoa包来说都是一样的。调试正常。

您能否指出我在哪里以及如何建立/建立输出目录?(我知道这听起来很傻,我已经在Xcode3中编码了几个月了,但是我在Xcode4 beta中无法弄清楚)。

非常感谢。

Answers:


342

在顶部的Xcode菜单中,单击首选项,选择“位置”选项卡,然后查看“构建位置”选项。

您有2个选项:

  1. 将构建产品放置在派生数据位置(推荐)
  2. 将构建产品放置在目标指定的位置

更新:在xcode 4.6.2上,您需要单击派生数据文本字段下方右侧的高级按钮。构建位置选择旧版。


27
这样的回答解释了为什么这个改动是:stackoverflow.com/questions/5331270/...
toofah

3
骄傲的会员,您是什么意思,这些都不在Xcode 5中?它们位于“首选项”->“位置”->“派生数据”->“高级”中。
理查德·韦纳布尔

好的,我的构建就.../XCode/DerivedData/足够简单地进入文件夹了。除了子文件夹似乎是AppName-asdflkjqwergoobledygook。由于我是通过脚本进行构建的,因此我想实际找到该构建(以便可以打包并通过TestFlight发送:)如何确定多个MyAppName-xxxx-s中哪个是正确的?谢谢!
2014年

@Olie您还可以将派生的数据位置更改为您自己选择的路径
Gerard

@杰拉德:我可以,但是那不是我想做的。我正在从回购中检查源,然后通过命令行进行构建,并且我想知道构建的去向。我的构建脚本以任何方式(例如,通过更改项目设置)修改项目都是不合适的
。– Olie

140

如果从命令行构建,则可以通过以下方式设置输出目录:

xcodebuild -workspace 'WORKSPACE_NAME.xcworkspace' \
           -scheme 'SCHEME_NAME' \
           -configuration 'Release' \
           -sdk iphoneos7.0 CONFIGURATION_BUILD_DIR='OUTPUT_DIRECTORY'

为了使我的sh脚本正常工作,我需要删除单引号并只写CONFIGURATION_BUILD_DIR = / Users / ...
Stanislav Pankevich

@occulus,您是完全正确的,因为在构建项目后这将无法构建测试目标,我想如果您只是在构建它,可以,但是最好使用绝对路径!
Mostafa Berg 2014年

如果有人尝试解决类似的问题,我说服XCode 6.x 使用此组合将链接的二进制文件准确放置在所需的位置:/Users/moi/src/mozbuilds/xul3604/$(CONFIGURATION)/dist/bin
J Evans

29

在Xcode 5中:Xcode菜单> 首选项...项目> 位置选项卡> 位置子选项卡> 高级...按钮> 自定义选项。

然后选择,例如,相对于工作区


8
愿您活到一百岁,强壮健康的先生。谢谢你
WhozCraig'5

13

如果您将Xcode 4构建位置设置设置为“将构建产品放置在派生数据位置(推荐),则应位于〜/ Library / Developer / Xcode / DerivedData中。此目录会将您的项目作为目录存在,项目名称将附加一堆生成的字母,因此请仔细查看。


10

保留派生数据,但使用DSTROOT指定目的地。

使用DEPLOYMENT_LOCATION强制部署。

也使用未记录的DWARF_DSYM_FOLDER_PATH复制dSYM。

这使您可以使用从xcodebuild派生的数据位置,而不必做古怪的工作来查找应用程序。

xcodebuild -sdk "iphoneos" -workspace Foo.xcworkspace -scheme Foo -configuration "Debug" DEPLOYMENT_LOCATION=YES DSTROOT=tmp DWARF_DSYM_FOLDER_PATH=tmp build

8

您始终可以通过在构建日志查看器中查找并将目录复制到终端窗口中来找到构建目录。

在安装它们之前,我用它来分析我的iOS .app捆绑包,以确保其中没有杂散文件。


如此便捷的苹果。不!
zaph 2011年

1
在哪里可以找到此构建日志?在Xcode帮助中搜索“构建日志”将返回0个结果。
devios1

1
Nm,找到了看起来像气泡的“日志导航器”。
devios1 2013年

4

对于想从脚本中找到构建目录但不想更改它的任何人,请运行以下命令以获取指向DerivedData中的文件夹的所有构建设置的列表:

xcodebuild -showBuildSettings | grep DerivedData

如果您运行自定义目标和方案,请也将它们放在此处:

xcodebuild -workspace "Foo.xcworkspace" -scheme "Bar" -sdk iphonesimulator -configuration Debug -showBuildSettings | grep DerivedData

查看输出以找到所需的设置输出,然后:

xcodebuild -showBuildSettings | grep SYMROOT | cut -d "=" -f 2 - | sed 's/^ *//'

最后一部分在等号处剪切字符串,然后在开始处修剪空格。


2

如果使用新的Xcode4工作区,则可以在“ 文件” ->“ 工作区设置”下更改“ 派生数据位置


1

没有这无关得到的位置/遗留(每个目标)的位置行为
格雷戈里Pakosz

是的。无论哪种方式都可以。从文档中:“目录路径。标识活动构建配置的所有与构建相关的文件所在的目录。”
Heath Borders 2012年

不。与xcode4无关,它取决于Xcode > Preferences > Locations > Derived data投票最多的答案中所述的设置。+您所引用的文档的最新更新时间为2010年
Gregory Pakosz 2012年

我实际上已经使用此设置从xcodebuild中使用xcode4配置构建目录。试试看。
希思·

1
很好,我已经尝试过使用Xcode 4.3.1(来自IDE),并且在不更改全局设置的情况下,产品在~/Library/Developer/Xcode/DerivedData/我指定的目录中而不是目录中构建CONFIGURATION_BUILD_DIR。如果我想CONFIGURATION_BUILD_DIR荣幸,我必须将Xcode派生的数据首选项切换为“旧版”
Gregory Pakosz 2012年

0

开始使用Xcode首选项之前要检查的另一件事是:

选择目标并转到构建设置>包装>包装扩展

值应为:app

如果不是,请双击它,然后键入不带qoutes的“ app”。


-1

真烦人 打开您的项目,单击目标,打开构建阶段选项卡。检查您的副本捆绑资源中是否有任何红色项目。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.