Упаковка пакета со статической библиотекой
-
03-07-2019 - |
Вопрос
У меня есть статическая библиотека, включающая несколько xib.В основном они будут одинаковыми для всех проектов.Я хотел бы включить xibs как часть библиотеки.Я могу включить их veiwcontrollers, ссылаться на эти контроллеры в вызывающем проекте, но тогда не будет xib для загрузки.Когда я щелкаю правой кнопкой мыши xib в проекте библиотеки, он не может быть частью цели.
Я думал о создании CFPluginBundle, но это создает новый проект.Я потеряю все ссылки на IBOutlet и IBAction.Как лучше всего повторно использовать xib, у которых также есть выходы и действия для определенных контроллеров?
Решение
Здесь больше обсуждения об этом: Можете ли вы ссылаться на файлы Xib из статических библиотек на iPhone?
Другие советы
У меня возникла та же проблема, когда я хотел экспортировать свой проект в качестве библиотеки для использования другими разработчиками.Я нашел идеальное решение, отвечающее моему мнению, и, похоже, оно ответит и вашему.
Существует плагин xcode, который позволяет вам создать проект как библиотеку, которая также включает в себя ресурсы.
https://github.com/kstenerud/iOS-Universal-Framework
Я не знаю ребят, которые создали этот плагин, но он работает как шарм.
Я не уверен, что вы подразумеваете под «включить xibs как часть библиотеки», поскольку статические библиотеки не могут иметь ресурсы, но они также не поставляются автономно, поэтому в этом нет необходимости.Если вы просто хотите повторно использовать код для своих собственных проектов, вы можете хранить xib там, где вы храните статическую библиотеку, и просто включать xib в любой проект, использующий эту библиотеку.
Если вы выберете путь CFPluginBundle, вы сможете создать новые цели пакета в существующем проекте;в шаблонах нет ничего волшебного, они просто создают фиктивные файлы и включают правильные настройки сборки.Вы можете скопировать их в новую цель в существующем проекте, и все будет работать нормально.Тем не менее, я не совсем понимаю, что вы имеете в виду, говоря о потере ссылок IBOutlet и IBAction, поскольку эта информация является частью xib (и класса, который вы используете в xib), а не проекта.