Xcode的构建文件夹在哪里?

237
在 Xcode 4 之前,构建文件会创建在我的项目根目录中。现在我找不到它了。请问构建文件夹在哪里?

40
点击“文件->项目设置”。它会告诉您该文件夹的位置。请注意小的“箭头”按钮 - 它将在Finder中为您打开该文件夹。非常方便。 - Fattie
4
似乎已更新为 文件 -> 工作区设置 - Joel Purra
10个回答

297

~/Library/Developer/Xcode/DerivedData 现在是默认选项。
您可以在 Xcode 的首选项中设置,以允许项目指定它们的构建目录。


16
好的,所以我的编译内容进入了.../XCode/DerivedData/文件夹,很简单。但子文件夹似乎是AppName-asdflkjqwergoobledygook。由于我正在从脚本构建,所以我想实际上“找到”构建(这样我就可以打包并通过TestFlight发送 :))。我如何确定哪个MyAppName-xxxx是正确的?谢谢!(注意:在这种特定情况下,我不想使用CONFIGURATION_BUILD_DIR参数强制输出,因为这会破坏旧目标依赖关系。) - Olie
7
您可以在 Xcode 首选项 > 位置 > 派生数据 中找到该设置。 - nottombrown
6
构建结果通常不受版本控制,因此其他 IDE 可能会从中受益,这可能是一个改进。 - Arne Evertsson
1
我很喜欢这个方法,真的。这样可以轻松地从版本控制中排除 obj bin 文件夹,唯一的问题是找到它,但是...Google。 - Weyland Yutani
7
这个问题的意思是:在这个星球上是否存在任何版本控制系统都没有提供忽略构建目录的方法?即使只有一个也行?我的翻译如下:@ArneEvertsson 这个问题的意思是:在这个星球上是否存在任何版本控制系统都没有提供忽略构建目录的方法?即使只有一个也行? - hraban
@Olie 这是正确的。它将生成哈希作为目录名称。要查找特定的构建,请记下运行构建输出的时间,并在Finder或使用ls -l在bash上查看最后修改日期。 - DrewT

34

文件夹应位于:~/Library/Developer/Xcode/DerivedData

如果您更改了默认设置,可以通过转到文件->工作区设置,然后查看生成位置来查看生成目录的位置。


16

2
非常好。如果我只是让XCode自己做,有一个变量告诉输出文件夹的名称吗?(我的意思是应用程序名称后面的随机文本在.../Xcode/DerivedData中)谢谢! - Olie

11

在此输入图片描述

在此输入图片描述

配置XCode项目设置,可以解决您的问题。


2
遗留的构建系统已经过时了! - parse

10

Xcode构建文件夹

工作区

默认情况下,构建位置派生数据(Derived Data)中。

请注意:如果您在开发过程中删除DerivedData并重新构建,则产品路径可能会发生更改

Xcode -> Preferences... -> Locations 

您可以更改构建位置的位置。 这将影响整个工作区。

File -> Project/Workspace Settings... -> Advanced 

目标

CONFIGURATION_BUILD_DIR

如果您想为一个目标创建一个自主的构建位置(Build location),可以更改该位置:

Xcode v11及以上版本

Add User-Defined Setting -> CONFIGURATION_BUILD_DIR

在Xcode v11之前的版本

Project editor -> select a target -> Build Settings -> Per-configuration Build Products Path (CONFIGURATION_BUILD_DIR) 

//default value
$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)

您可以获取下一个错误[关于]

Command CodeSign failed with a nonzero exit code

5

我自己也曾经想过同样的问题。我发现在“文件”(菜单)下有一个“项目设置”的选项。它会打开一个对话框,里面有三个选择:“默认位置”、“项目相对位置”和“自定义位置”。 “项目相对位置”会把构建产品放在项目文件夹中,就像以前一样。这不在偏好设置菜单中,并且必须在每次创建项目时设置。希望这可以帮到你。


嘿,欢迎来到stackoverflow。看起来这是一个旧问题,已经有了答案。如果您认为您的答案与其他人不同且更好,则欢迎您发布您的答案。我建议您请添加“您的答案如何不同/更好”以帮助用户区分它与其他答案。 - Amit Phaltankar
Amit,这个答案更详细地说明了GUI当前显示的内容,与之前有所不同。 - AnneTheAgile

3

在之前通过Xcode3创建的项目中,我会看到build/目录下的一个名为Foo.build的中间目录,其中Foo是我的项目名称,然后在其中有你所期望的目录(Debug-iphonesimulator、Release-iphoneos等),包含对象文件和产品。

现在,我怀疑如果在Xcode4中开始一个项目,其默认位置是在DerivedData下,但是如果在Xcode4中打开一个Xcode3项目,则Xcode4会使用build/目录(如上所述)。所以,有几个正确的答案。:-) 在“文件”菜单下的“项目设置”中,您可以自定义XCode在这方面的工作方式,无论您喜欢多少。


2

如果出现调试运行问题

~/Library/Developer/Xcode/DerivedData/{你的应用}/Build/Products/Debug/{项目名称}.app/Contents/MacOS

你可以在这里找到独立的可执行文件(Mach-O 64位可执行文件x86_64)


1

对我而言,它位于:

/Users/{你的用户名}/Library/Developer/Xcode/DerivedData...

而不是在/Library/Developer/Xcode/DerivedData...


1
您可以使用项目设置更改构建目录,但是这些设置似乎没有保存在共享设置中,因此很难将它们放入源代码控制中,这使得创建首先从源代码控制获取所有内容的自动化构建变得困难。
我的解决方法:向项目添加脚本以将构建文件复制到您喜欢的任何位置。在Xcode中选择目标(以下说明适用于Xcode 12):单击左上角的文件图标以打开项目导航器,然后单击旁边带有Xcode图标的项目名称,然后单击右侧窗格中的目标。现在点击'Build Phases'选项卡,然后点击小加号,然后点击“New Run Script Phase”。
您可以输入脚本,应该类似于以下内容:
cp -R ${BUILT_PRODUCTS_DIR}/MyProduct.framework ${PROJECT_DIR}/MyProduct.framework

这个示例是为一个框架项目而设计的,因此它将整个框架目录复制到项目目录中(即您的.xcodeproj文件所在的位置)。现在,当您使用xcodebuild在命令行上构建时,您的构建产品将位于已知的位置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接