【问题标题】:How do you move an Xcode 4.2 project file to another folder?如何将 Xcode 4.2 项目文件移动到另一个文件夹?
【发布时间】:2012-02-12 01:57:34
【问题描述】:

Xcode 4.2 在磁盘上布局文件的方式并不疯狂。它创建一个项目文件,然后在它旁边创建一个包含所有代码的子文件夹。我们希望项目文件位于同一个文件夹中,然后工作区文件(如果有)成为该文件夹的兄弟。使布局更便携。

但是,我无法忍受 Lion 中缺少 Save-as 的情况,现在显然 Xcode 4.2 也是如此。至少使用 TextEdit,我刚刚从 SL 中获取了版本并且它可以工作。如您所知,Xcode 没有那么幸运,它与 Xcode 3.x 完全不同。

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

【问题讨论】:

  • 我假设您不想在 Finder 中手动执行此操作?因为如果你真的需要移动文件,你可以这样做。
  • 其实不能。如果你移动项目,所有的文件引用都会被破坏,但即使你手动修复它们,构建设置仍然会被破坏。即使尝试在构建设置网格中手动修复它们也不能解决所有问题。旧路径仍然传递给编译器。
  • 我想出的修复(即hack/workaround)是简单地删除对项目中文件的所有引用,关闭它,在finder中重新排列它们,重新打开项目,然后手动添加回来所有文件,根据需要更正构建设置。还不错,因为我只有大约 40 个文件,但是没有“另存为”命令真是太荒谬了。苹果对 Lion 的这种变化真的把狗搞砸了。他们有史以来最大的错误之一。 Lion 对我来说是 Apple 的“Vista”时刻。
  • 是的,我指的是你的 hack 做事方式,你将它们重新添加到 Xcode 中,以便它能够识别它们。我同意这是一种痛苦,目前还没有可预见的解决方法。对不起,我没有更好的答案给你。
  • 另存为不是解决方案,尤其是当您有像我这样的大型项目(超过 650 个文件)时。这是可能的,请参阅下面的答案。

标签: xcode projects-and-solutions


【解决方案1】:

这是你的做法(我在 Xcode 4.3 中使用):

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

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

点击图标:

当您选择 .xcodeproj 文件所在的同一文件夹时,将显示“无”。

结论:
我有一个包含约 650 个文件的大型项目,但只有 12 个组,因此只需几分钟即可重新映射所有内容。

注意:
有时在映射文件时,如果名称相同(即两个具有相同名称的文件夹),它不会识别文件夹更改。您可能需要临时选择任何其他文件夹,然后选择实际的项目文件夹,None 指示符将出现。

【讨论】:

  • 正如我在上面评论的那样,不完全是我想要的,但这会起作用,但需要注意的是,您的解决方案只有在组(以及您忘记提及的任何文件兄弟姐妹)具有它们的相对性时才有效设置为项目。不过,我想我会编写一个实用程序来为您执行此操作。不过,正如我所说,这是最接近真实答案的答案,因此您可以获得投票。
  • “相对于组”是 XCode 项目中所有文件的默认设置。我认为你永远不应该改变这一点,因为这会让做这类事情变得更加困难。
  • 对于项目外部的共享代码库,您绝对必须这样做。不改变它对于简单的项目来说效果很好,但是当你像我们一样开始使用更大架构的产品时(以及为什么我想在问题中改变这种行为),它就变得很有必要了。
  • 你是对的。我通过使用“XCode 工作区”进行代码共享解决了这个问题——这使用了多个 Xcode 项目,其中每个项目的文件都是本地的。这使我可以保留“相对于组”的单个项目文件。并从我的计算机上的任意位置加载共享代码。您还可以使用相同的机制映射这些共享项目。
  • 我有一个 xcworkspace,使用此方法无法将主 xcodeproj 文件移动到其自己的文件夹中。我不必重新链接这些组,但它失去了它的计划。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多