1

嘿,我经常将我的 XCode iPhone 项目上传到 svn 存储库,以便在另一台机器上构建。

我的问题是,当我向项目添加资源时,有时我会忘记添加相对于项目的资源。

我知道一个答案是要更加小心(当你累了时不容易!)但是如果有一种方法可以运行脚本来检查我的资源路径是相对的,并且在我构建时警告我,这将是一个很好的时间为我节省。

我该怎么做呢?

谢谢

克里斯

4

2 回答 2

1

您可以选择项目中的所有文件并一次性设置所有文件的路径类型。虽然这不是一个脚本,但这确实比单独处理文件节省了大量时间

我认为编写脚本的最佳方法是查看 .xcodeproj 文件 - 文件路径在其中列出。如果您的项目名为 MyProject,您需要打开(通过在 Finder 中使用 Show Package Contents 或在终端中使用通常的 cd)MyProject.xcodeproj 目录。

在这里,您会找到一个名为 project.pbxproj 的文件 - 在不会弄乱您的格式的编辑器中打开它并查看文件。如果您在项目中搜索您的文件之一,您应该能够看到 Xcode 如何存储对项目文件的引用。

查找名为 /* Begin PBXFileReference section */ 的部分。在这里列出了所有文件,以及它们相对于项目的位置,例如:

... path = Classes/MyClass.h; sourceTree = SOURCE_ROOT

如果您可以解析此文件,您应该能够实现您想要的 - 但请记住备份该文件,否则您可能会损坏您的项目。

于 2010-03-08T14:53:08.357 回答
0

如果您改为编写一个脚本,询问 SCM 项目中是否有任何内容未提交,那会怎样?例如,想想这个场景

Project Root

  Codex

    Project.xcodeproj
    …

  Design

    anImage.png

anImage.pngXcode项目所在Codex的位置(其路径以 开头../)。强大的.pbxproj解析器必须支持 Xcode 引用文件的所有变体,才能准确知道是否存在杂散文件。

OTOH,SCM 一直都知道一切在哪里(您提到了对 SVN 服务器的 up-ping),所以为什么不问它呢。

  • 如果项目中的任何内容未提交,我们有一个Ruby 脚本会在 Xcode 的构建日志中打印警告。
于 2010-06-14T04:46:18.947 回答