如何将 Xcode 4.2 项目文件移动到另一个文件夹?

10

不太满意Xcode 4.2在磁盘上的文件布局方式。它创建一个项目文件,然后在旁边创建一个包含所有代码的单个子文件夹。我们希望项目文件在同一文件夹中,然后工作区文件(如果有)是该文件夹的兄弟节点。这样可以实现更便携的布局。

但是,我无法忍受Lion中缺乏“另存为”的功能,现在显然Xcode 4.2也没有了。至少对于TextEdit,我只需从SL中获取版本即可使用。但是,对于Xcode来说,就没有这样的运气了,因为你知道它与Xcode 3.x完全不同。

那么...如何相对于源代码移动/重命名项目文件呢?


我猜你不想在Finder中手动操作这个吧?因为如果你真的需要移动文件,你可以这样做。 - Lucas Derraugh
1
实际上你不能这样做。如果你移动项目,所有文件的引用都会失效,即使你手动修复了它们,构建设置仍然会出现问题。即使在构建设置网格中手动尝试修复它们也无法解决所有问题。旧路径仍然会传递给编译器。 - Mark A. Donohoe
我想到的解决方法(即hack/workaround)是简单地删除项目中所有文件的引用,关闭它,在finder中重新排列它们,重新打开项目,然后手动添加回所有文件,并根据需要更正构建设置。由于我只有大约40个文件,所以还好,但是没有“另存为”命令真的很荒谬。苹果在Lion中进行的更改真的很糟糕。这是他们有史以来最大的错误之一。对我来说,Lion就是苹果的“Vista”时刻。 - Mark A. Donohoe
是的,我指的是你的hack方式,即重新将它们添加到Xcode中,以便它能够识别它们。我同意这很麻烦,目前还没有可预见的解决方法。很抱歉我没有更好的答案给你。 - Lucas Derraugh
“另存为”不是一个解决方案,特别是当你有一个像我的大型项目(超过650个文件)时。这是可能的,请参见下面的答案。 - bentford
我认为你误解了我的意思。我并没有说要对所有文件都进行“另存为”。我是指在单个项目文件上执行“另存为”,并更新引用。这种事在 Windows 的 Visual Studio 中很简单。是的,我知道你可以按照你下面所说的来做,但你必须为所有根级项目(即不仅仅是组,还包括其同级)都进行操作。尽管如此,我似乎找不到任何实现我想要的功能的方法,所以你会得到我的投票。 - Mark A. Donohoe
1个回答

20

以下是具体步骤(我在Xcode 4.3中使用):

首先,移动项目文件
1. 先关闭Xcode项目
2. 将ProjectName.xcodeproj移动到包含所有代码的文件夹中
3. 通过点击ProjectName.xcodeproj打开Xcode项目

其次,重新映射你的文件
1. 你不需要一个一个重新映射文件,只需要映射组
2. 使用⌥⌘1或View->Utilities->Show File Inspector打开“文件检查器”
3. 点击每个组,然后单击方形图标(参见下面的截图),选择包含项目文件的文件夹。

要点击的图标: enter image description here

如果选择了与.xcodeproj文件相同的文件夹,则会显示“None”

结论:
我的项目包含约650个文件,但仅有12个组,所以重新映射所有内容只需几分钟。

注意:
有时候,在映射文件时,如果文件夹名称相同(即具有相同名称的两个文件夹),它可能无法识别文件夹更改。你可能需要先选择其他任意文件夹,然后再选择实际项目文件夹,这时“None”指示器将出现


正如我之前所评论的,这并不完全是我想要的,但这可以工作,只有一个警告:您的解决方案仅在组(以及任何文件同级项,您忘记提到)设置为项目的相对性设置时才有效。然而,我认为我将编写一个实用程序来为您完成此操作。尽管如此,正如我所说,这是最接近真正答案的,所以您得到了我的投票。 - Mark A. Donohoe
1
“相对于组”是XCode项目中所有文件的默认设置。我认为你永远不应该更改它,因为这会使此类操作更加困难。 - bentford
对于位于项目之外的共享代码库,您绝对必须这样做。对于简单的项目不更改也可以正常工作,但是当您进入像我们一样的大型架构产品时(这就是我想在问题中更改此行为的原因),这变得必要。 - Mark A. Donohoe
1
你是正确的。我通过使用“XCode工作区”来实现代码共享解决了这个问题--这使用多个Xcode项目,每个项目的文件都是本地的。这使我能够保持各个项目文件“相对于组”。并从计算机的任意位置加载共享代码。您也可以使用相同的机制映射这些共享项目。 - bentford
我有一个xcworkspace,使用这种方法将主xcodeproj文件移动到其自己的文件夹中不起作用。我不必重新链接组,但它失去了其方案。 - jowie
仍然适用于XCode 10。虽然您必须首先通过单击当前文件夹位置旁边的“x”按钮来删除路径,然后选择新路径。 - Declan McKenna

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