Использование изображений из статической библиотеки - PullRequest
3 голосов
/ 03 ноября 2010

Я пытаюсь преобразовать проект с изображениями в статическую библиотеку.

Код, который получает изображение, выглядит следующим образом:

[UIImage imageNamed:@"foo.png"]

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

Есть ли способ заставить это работать, когда изображения содержатся только в библиотеке и мне не нужно копироватьих в мой проект?

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

Ответы [ 3 ]

3 голосов
/ 31 марта 2014

Просто добавьте имя пакета, содержащего ваше изображение, к имени изображения:

[UIImage imageNamed:@"Myframework.bundle/MyImage"

Это также работает в Интерфейсном Разработчике, предварительный просмотр может быть поврежден, но изображение будет загружено должным образом.

При использовании CocoaPods (что я бы порекомендовал) обязательно используйте параметр resource_bundles для ваших изображений и перьев.

Вы можете увидеть связанный ответ здесь .

0 голосов
/ 11 июля 2012

Имел подобную ситуацию и написал скрипт для копирования файлов в .app во время компиляции. Исправление, подобное тому, которое мы используем, описано в разделе «Не кодовые ресурсы для статических библиотек» на этой веб-странице . Это работает, но может вызвать некоторые ошибки подписи кода. Другой вариант - создать вторую цель .bundle для ресурсов , описанных на этой веб-странице , хотя по какой-то причине я не смог получить пакет для фактической сборки. В настоящее время я рассматриваю написание сценария для копирования ресурсов в пакет во время компиляции и компиляции любых файлов .xib в .nibs, это также возможное решение, на которое вы могли бы обратить внимание.

0 голосов
/ 03 ноября 2010

Статическая библиотека не может содержать ресурс пакета. Так что простой ссылки на файл .a будет недостаточно. Но вы должны быть в состоянии дать перекрестную ссылку на статическую библиотеку xcodeproj. Пример * +1003 *

...