Добавить изображения, строковый файл в статическую библиотеку в iPhone - PullRequest
3 голосов
/ 03 августа 2010

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

Мои сомнения:

  • Можем ли мы добавить изображения и другие ресурсы в файл библиотеки .a?
  • Как мы можем включить локализацию в эту статическую библиотеку? (Localizable.strings ??)

Ответы [ 4 ]

4 голосов
/ 21 июля 2011

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

Чтобы локализовать статическую библиотеку, добавьте файлы Localizable.strings, которые вы создали, в ваш проект, который включает вашу библиотеку и все работает нормально.

2 голосов
/ 19 апреля 2011

Поскольку в iOS фреймворки не разрешены, у вас есть два варианта:

  1. Упакуйте папку «Resources» вместе со статической библиотекой.Он содержит ваши изображения и т. Д. Предоставьте документацию пользователю библиотеки относительно того, куда следует направлять ресурсы (предположительно, скопированные в папку «Ресурсы» приложения).Файлы локализации будут импортированы в проект.

  2. Base64 (или любой другой) кодирует изображения и т. Д. И компилирует их как статические данные в код библиотеки.Это немного неловко, но это можно сделать.Вы должны расшифровать их при загрузке для отображения (NSData и т. Д.).Вы можете предоставить класс ресурсов, который хранит закодированные объекты и возвращает их в незашифрованном виде.Один очевидный недостаток в том, что ваш код может стать довольно большим - убедитесь, что вы загружаете ресурсы только тогда, когда это действительно необходимо, и выгружаете, когда закончите ..

Я не верю, что вы можете встраивать(для дальнейшего использования) файлы строк локализации однако.

1 голос
/ 03 августа 2010

Библиотека, а также изображения и ресурсы - это именно то, для чего предназначен фреймворк, а не статическая библиотека.(Отказ от ответственности: я программист Mac, а не программист iPhone, поэтому, насколько я знаю, фреймворки на iPhone встречаются реже.)

0 голосов
/ 27 марта 2013

Вы можете конвертировать изображения в двоичные данные и добавлять их в библиотеку как символ [].Тогда, когда изображение необходимо просто используйте

[[UIImage alloc] initWithData:[NSData dataWithBytesNoCopy:(void*)<CHAR_ARRAY_NAME> length:sizeof(<CHAR_ARRAY_NAME>) freeWhenDone:NO]];

Это простое приложение поможет вам конвертировать изображения https://github.com/RomanN2/image-to-binary-data

...