Вы можете создать дополнительные цели в XCode, называемые «пакеты ресурсов». Они имеют структуру пакета (например, пакеты .app или .framework), но не содержат двоичного кода. Добавьте свои ресурсы в эти пакеты, добавьте продукты этих целей на стадию «Копировать ресурсы пакета» вашей главной цели, а затем используйте эти пакеты во время создания экземпляра, используя следующий код:
NSString *skinBundlePath = [[NSBundle mainBundle] pathForResource: @"MyBundle" ofType: @"skin"]; // or whatever it's called
if (skinBundlePath) {
NSBundle *skinBundle = [NSBundle bundleWithPath: skinBundlePath];
}
Приведенный выше фрагмент предполагает, что вы установили для расширения оболочки целевого объекта значение "skin" и назвали его "MyBundle".
В Xcode 3 (у меня нет 4 подручных), вы можете добавить цель, перейдя в Project -> New Target. Выберите «Loadable Bundle» из Mac OS X (даже если вы используете iOS.) В верхней части моей головы, вам не нужно никаких дополнительных настроек для его работы, но вы должны позаботиться о том, чтобы ресурсы оказались в правильный пакет, когда вы добавляете их.
Если это звучит слишком сложно, также возможно создать новый проект, который создает загружаемый пакет, и сделать это зависимостью от вашего основного проекта; снова добавьте продукт сборки подпроекта к этапу «Копирование комплекта ресурсов» вашего основного проекта.