Настраиваемые изображения для iphone SDK

Мы создаем iphone SDK. Он содержит обычных подозреваемых:

  • включить каталог с файлами заголовков
  • каталог lib со статической библиотекой
  • Каталог ресурсов с файлом .bundle, содержащим строки и изображения.

Пока все работает нормально. Сейчас у нас есть несколько проектов, которые основаны на SDK, и мы хотим дать нашим клиентам возможность настраивать внешний вид.

Например:

  • Клиент А хочет заменить фоновое изображение своим творением.
  • Клиент Б хочет только заменить логотип по умолчанию своим творением.
  • Клиент C хочет и то, и другое.

и т.д.

Если клиент не предоставит конкретное изображение, будет использоваться изображение по умолчанию в файле .bundle.

Вопрос: Как лучше всего разрешить настраиваемые изображения, которые также органично интегрируются в процесс разработки?

  • Не-разработчики могут редактировать и заменять данные изображения.
  • Мы всегда можем отправить клиенту индивидуальную версию или создать ее.
  • Нет конфликта между изображениями по умолчанию и настроенными изображениями.

В настоящее время предпочтительным решением является добавление фазы Runscript во все зависимые проекты, которая перезаписывает все файлы изображений изображениями в указанном каталоге проекта.

Есть ли еще лучшее решение?


person Thorsten S.    schedule 22.03.2012    source источник
comment
Мы создаем iphone SDK. — Разработчики из Apple задают вопросы по SO? о_О   -  person beryllium    schedule 22.03.2012
comment
SDK — это просто аббревиатура для фреймворка или инструментария. ZBarSDK, например. не от Apple и до сих пор называет себя SDK. И нет, я не работаю в Apple.   -  person Thorsten S.    schedule 22.03.2012


Ответы (1)


У нас схожие требования, и мы пришли к одному и тому же решению (скрипт времени предварительной компиляции перезаписывает изображения/другие ресурсы по умолчанию в папке сборки приложения). Кроме того, мы сделали настраиваемой в настройках проекта исходную папку настроенных изображений с определяемыми пользователем переменными в настройках сборки (называется BRAND_NAME). Поэтому следующий сценарий запуска был добавлен в качестве первой фазы сборки:

rsync -r --exclude=.svn Resources/brands/${BRAND_NAME}/images Resources

У этого есть дополнительное преимущество: вы можете изменить переменную BRAND_NAME для каждой цели компиляции, чтобы вы могли создавать разные версии продукта прямо из XCode без какой-либо ручной настройки.

person MrTJ    schedule 22.03.2012