2010-03-08 113 views
1

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

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

我知道一个答案是要更小心(不容易当你累!)但如果有一种方法来运行脚本来检查我的资源路径是相对的,当我建立并警告我,如果他们不是为我节省时间。

我该怎么做呢?

感谢

克里斯

回答

1

您可以选择在项目中的所有文件,并设置为所有这些通道型一气呵成。虽然这不是一个脚本,但这确实节省了大量的时间来完成单独的文件

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

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

查找名为/ *开始PBXFileReference节* /的节。在这里所有的文件都列出来,与他们相对于项目一起,如:

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

如果你能分析这个文件,你应该能够acheive你想要的 - 但记得要备份的文件否则你可能会破坏你的项目。

+0

你是它的一个选择..真的很想知道更多关于如何脚本这样的事情。 – Chris 2010-03-09 09:24:46

0

如果您改写脚本来询问SCM,如果项目中的任何内容没有提交,它将会如何?例如,认为此方案

Project Root 

    Codex 

    Project.xcodeproj 
    … 

    Design 

    anImage.png 

的地方anImage.png是的Codex外,在Xcode项目位于(其路径与../开始)。一个强大的.pbxproj解析器将不得不支持Xcode引用文件的所有变体,以确切知道是否存在杂散文件。

OTOH,SCM知道一切都在哪里(你提到了一个SVN服务器),所以为什么不问它。

  • 我们有一个Ruby script,如果没有提交项目中的任何内容,它会在Xcode的Build Log中输出警告。