Xcode构建和资源文件夹

时间:2009-09-17 13:30:10

标签: iphone xcode macos resources

我的iPhone应用程序中有几个资源,当它们被编译时,无论Xcode分组结构如何,它们都会被添加到应用程序资源文件夹的根目录中。这对大多数事情都很好,但是我需要在app的资源文件夹中的文件夹中构建一组文件。

目前,我已使用“添加现有文件... - >为添加的文件夹创建文件夹参考”将我的文件夹添加到Xcode。这很好,Xcode中的文件夹图标是蓝色而不是黄色。我的问题是Xcode没有注意到这些文件夹中的新文件或更改文件,因此当我构建项目时,新的或更改的图像都不在目标应用程序的资源中。我可以让它工作的唯一方法是做一个干净的,然后构建,这是非常烦人的,因为我正在进行更改,有时可能每分钟重新编译几次!

我希望在应用中保留的资源中的文件夹结构包含多个嵌套文件和文件夹。

有没有办法让Xcode识别所有已更改或新的文件和文件夹?

谢谢,

麦克

4 个答案:

答案 0 :(得分:10)

  

我的问题是Xcode没有注意到这些文件夹中的新文件或更改的文件,因此当我构建项目时,新的或更改的图像都不在目标应用程序的资源中。

这是一个长期存在的错误;在Adium工作时,它被咬了很多次。请在RadarWeb中提交。并感谢提醒;我已将自己的错误报告提交为x-radar:// problem / 7232149(visible to the public in OpenRadar)。您应该在自己的错误报告中提到这个错误号。

作为解决方法,您可以右键单击文件夹引用,然后选择“触摸”以告诉Xcode文件夹已更改。

答案 1 :(得分:4)

我今天遇到了你的第一个问题,我发现了这篇很棒的文章,它也谈到了第二个问题:http://majicjungle.com/blog/?p=123

答案 2 :(得分:3)

我也被这个错误所困扰。 这里给出的答案是一个很大的帮助。

我发现这个其他线程的答案也很有用,但我不确定它是否真的是一个安全的事情(它似乎生成一个新的AppId或其他东西):

iphone simulator resources not updating

这些是我为解决它而做的个人笔记。

1) Open the project in Xcode
2) Right-click the folder reference (BLUE folder) in the navigator
   at its root and pick "Remove Reference"
3) Close Xcode all the way
4a) Warning, this step might cause other problems in your project.
4b) Open the folder browser / Finder
4c) Navigate to: /users/USERNAME/Library/Application Support/
            /iPhone Simulator/version/Applications/THISPROJFOLDER
4d) Delete this whole THISPROJFOLDER. The name of the folder may be all
    numbers, but this clears the Xcode "Cache" so it will rebuild things
5) Find the actual folder where you store your pictures that were referenced,
   and move the folder elsewhere and rename it.
6) Now open Xcode
7) In Xcode, select Product -> Clean. It should clean successfully.
8) Now run the program through Xcode. It should run, but (hopefully) crash or
   otherwise fail because it doesn't detect the resource files you removed.
9) Now go standard Xcode usage and add the files back to the folder you want,
   and add a reference to that folder in the Xcode navigator. Run the program
   again, and it should detect the UPDATED PDFfiles/Imagefiles.

编辑: 好的,我按照上面Peter Hosey的帖子中的“回答”说明,这也有效。可能比我在这里的解决方案更好,因为我的第4步(必需)似乎重新生成app键或其他东西。

所以这是我在Peter的帖子之后在Xcode 4.0中修复它的方法:

 1) Open your project in Xcode
 2) Select the main project root item in the Navigator
 3) Select "Build Phases" in the main pane
 4) Select "Add Build Phase" button -> "Add Run Script"
 5) Reposition he "Run Script" entry bar in the screen,
    and move it to just-before the Copy Bundle Resources area
 6) Edit the run-script you just added in the main pane:
    : Set Shell to: /bin/sh (its the default, or try /bin/tsch)
    : Set the script line to: touch -cm ${SRCROOT}/MyDocs
    (Set it to your folder root area, matching the Blue Folder
     area in your Navigator)
 7) Save it all and select "Product -> Clean" to clean project

答案 3 :(得分:-1)

如果要维护目录结构,最好在文档目录中执行此操作。在您的应用程序首次启动时,将文件从捆绑包复制到您喜欢的层次结构中的文档目录。

编辑:澄清后,您可能只需要在项目中添加一些标题搜索路径。打开目标信息窗格,转到构建部分,然后将结构根文件夹添加到标题搜索路径列表中。检查递归,你应该更好