2015-05-15 4 views
4

Итак, в Xcode 6 мы, наконец, имеем возможность создавать и распространять наши собственные библиотеки в качестве Framework (в отличие от статических библиотек раньше).iOS Frameworks, встроить другую структуру или библиотеку?

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

Причина в следующем: для создания и распространения фреймворков для других людей требуется, чтобы они вручную добавляли какую бы рамку мы не связывали. Это нормально, когда эти библиотеки являются стандартными, которые можно добавить прямо из Xcode, но когда нам нужно связать их с другими государственными структурами. Одним из примеров было бы, если в рамках фреймворка используется AWS в качестве бэкэнд, немного переборщить, чтобы попросить разработчиков также загрузить определенную версию своего SDK и ссылку на определенные биты, которые требуются. И это становится более переполняющим, когда нам нужны другие для регистрации производительности или больше.

В OSX есть возможность использовать Umbrella Frameworks, но это не документировано на iOS.

спасибо.

+0

Cocoapods - это решение для связи с другими фреймами. Не знаю, применимо ли это, но я бы рекомендовал сильно. – Schemetrical

+0

Спасибо. Это правда, что при распространении на Cocoapods это не проблема. Однако при распространении в качестве загружаемой автономной структуры. – Einho

ответ

3

Недавно сделал это сам по прошивке, к сожалению, какие-либо рамки, имеют вложенные рамки также должны быть связаны в проекте родительской структура привыкает в.

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

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

Это, к сожалению, ограничение Xcode/iOS, как оно сейчас стоит.

+0

Спасибо. Я сделал это для статической библиотеки и ее Bundle (изображения, контроллеры и т. Д.). Это нормально, когда число мало. Проблема заключается в использовании другой структуры (в данном случае AWS), есть также вероятность того, что целевое приложение уже имеет поддержку AWS, а также тот факт, что число слишком велико, что наша структура будет трудно реализовать. Интересно, есть ли лучшее решение? – Einho

+0

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

+0

Мне нравится это решение. Таким образом, любой проект, который хочет использовать фреймворк, который обертывает мою инфраструктуру, должен включать в себя мою инфраструктуру :) – izzy

Смежные вопросы