Создание Xcode и папки ресурсов

У меня есть несколько ресурсов в моем приложении iPhone, и когда они компилируются, все они добавляются в корень папки ресурсов в приложении независимо от структуры группировки Xcode. Это нормально для большинства вещей, однако есть набор файлов, которые мне нужно структурировать в папке в папке ресурсов приложения.

на данный момент я добавил свои папки в Xcode, используя "добавить существующие файлы... - >Создать ссылки на папки для добавленных папок". Это нормально и папка значки в Xcode синие, а не желтые. Моя проблема в том, что Xcode не замечает и новые или измененные файлы в этих папках, и, следовательно, когда я создаю свой проект, ни одно из новых или измененных изображений не находится в ресурсах целевого приложения. Единственный способ заставить его работать - это сделать чистую, а затем построить, что довольно раздражает, поскольку я делаю изменения и перекомпилирую, возможно, несколько раз в минуту!

моя структура папок в моих ресурсах, которые я хочу сохранить в приложении, состоит из несколько вложенных файлов и папок.

есть ли способ заставить Xcode распознавать все файлы и папки, которые изменились или являются новыми?

спасибо,

Майк

4 ответов


моя проблема в том, что Xcode не замечает и новые или измененные файлы в этих папках, и, следовательно, когда я создаю свой проект, ни одно из новых или измененных изображений не находится в ресурсах целевого приложения.

Это давняя ошибка; она укусила меня много раз во время работы на программы. Пожалуйста, подайте его в RadarWeb. И спасибо за напоминание; я подал свой собственный отчет об ошибке как x-radar: / / problem / 7232149 (видимый для общественности в OpenRadar). Вы должны упомянуть этот номер ошибки в своем отчете об ошибке.

в качестве обходного пути вы можете щелкнуть правой кнопкой мыши ссылку на папку и выбрать "Touch", чтобы сообщить Xcode, что папка изменилась.


У меня была ваша первая проблема сегодня, и я нашел эту замечательную статью, которая также говорит о второй проблеме:http://majicjungle.com/blog/?p=123


меня тоже только что укусила эта ошибка. Ответы, уже приведенные здесь, очень помогли.

Я нашел ответ в этом другом потоке тоже полезным, но я не уверен, что это действительно безопасная вещь (кажется, генерирует новый AppId или что-то еще):

iPhone simulator ресурсы не обновляются

это мои личные заметки, которые я сделал, чтобы обойти его.

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.

изменить: Хорошо, я следовал инструкциям" ответ " от Питера Пост хози выше, и это тоже работает. Вероятно, лучше, чем мое решение здесь, потому что мой шаг 4 (требуется), кажется, восстанавливает ключ приложения или что-то еще.

Итак, вот как я исправил его в 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

Если вы хотите сохранить структуру каталогов, это лучше сделать в каталоге документов. При первоначальном запуске приложения скопируйте файлы из пакета в каталог документов в иерархии, которую вы предпочитаете.

EDIT: после уточнения кажется, что вам, вероятно, просто нужно добавить некоторые пути поиска заголовка в свой проект. Откройте панель сведения о целях, перейдите в раздел построение и добавьте корневую папку структуры в список путей поиска заголовка. Проверить рекурсивность и вы должны быть лучше