【问题标题】:Xcode does not pick up new class files in SVNXcode 不会在 SVN 中获取新的类文件
【发布时间】:2011-02-18 00:34:15
【问题描述】:

我有一个 SVN 存储库,我从中更新了我的本地代码,此更新包括新的类文件。当我开始构建时,由于我之前在 Xcode 中的文件中的代码已经更新并引用了一个新文件,因此出现了链接器错误。此文件已添加到我在 Finder 中的目录中(即我的本地文件系统是最新的),但这些新文件尚未添加到我的 xcode 中。

我的问题是:Xcode 如何找到新文件?或者哪个元数据文件存储了 Xcode 右侧窗格中显示的文件? (所以我可以检查这是否更新)

【问题讨论】:

  • 我注意到我必须在 Xcode 中重新启动我的项目才能显示在 Xcode 之外添加的文件。越野车,但它的工作原理。但是,我确实认为,即使它不在文件列表中(重新启动前),它们仍然可以被引用/使用。希望这会有所帮助..
  • “重启项目”是什么意思?

标签: xcode svn


【解决方案1】:

在 Finder 中右键单击 MyProject.xcodeproj 并选择 Show Package Contents。这将显示 XCode 用于控制项目结构的三个文件。这就像 Visual Studio 中的解决方案和项目文件,如果你熟悉的话。

包内容中包含每个用户的文件,<username>.pbxuser 和其他文件,具体取决于 Core Data 的使用情况。您需要的密钥文件是project.pbxproj。我们使用 XCode 将我们的 SVN 检查到 SVN 中,当它更新并且您更新项目时,您会收到一条警告,询问您是否要保留现有磁盘或从磁盘读取。读取磁盘以获取 SVN 已下拉到您的开发机器的新添加文件。

如果您对项目进行了自己的更改(包括添加任何新文件、组等),请务必小心确保解决冲突。比较工具对于选择正确的更改很有用,但我发现我必须这样做将合并后的 project.pbxproj 文件保存在别处,然后手动添加回 MyProject.xcodeproj 包中。

从 Windows 机器管理项目的副本可能更容易,因为我还没有找到一个可以接近 Tortoise 的 SVN 的 OSX 客户端。

【讨论】:

  • 只是一个绝妙的答案。希望这将获得恶名并成为第一个谷歌结果(因为目前没有一个很好的结果)
  • 好问题,谢谢 OP。非常感谢戴夫。我以前只是直接从 Xcode 提交选定的文件。我想这就是它产生这个问题的原因。现在我正在通过组织者提交文件。我认为这是正确的方法,对吗?
【解决方案2】:

Xcode 不会“找到”文件,Xcode 必须被告知文件在哪里。所以如果“svn up”拉下新文件,你要么告诉 Xcode 有新文件。如果其他开发人员更新了项目文件,以便他们的 Xcode 知道这些文件在哪里,如果您更新项目文件,它应该知道新文件。

【讨论】:

  • 是的,我认为可能是这种情况,但我确信其他开发人员项目文件“知道”这个新的类文件......也许这是一个“为什么不我的项目文件知道这个新文件...”可能相关:我的 svn 'commit' 和 'update' 按钮在 SCM 菜单中显示为灰色(如果有帮助的话)
  • 好吧,如果您的“svn up”关闭了项目文件,您可能需要关闭 Xcode 项目并在 Xcode 重新读取项目配置之前重新加载它。
猜你喜欢
  • 1970-01-01
  • 2013-03-03
  • 2014-09-02
  • 1970-01-01
  • 2019-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多