Как создать зонтичную структуру в SDK для iOS?

Я хочу создать зонтичную структуру в SDK для iOS. Мои требования:

У меня есть фреймворк под названием "Framework A", я хочу создать еще одну фреймворк под названием "Framework B" . Я хочу добавить "Framework A" в "Framework B" в качестве подрамки, и пользователям нужно импортировать "Framework B" в свой проект, чтобы использовать как "Framework A", так и "Framework B" . Другими словами, "Framework B" будет работать как оболочка для "Framework A". Я прочитал от Apple по следующей ссылке о создании фреймов:

https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html

но он не раскрывает способ создания зонтичной структуры.

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

Ответ 1

Мы все знаем, что создание зонтичной структуры сильно обескуражено Apple. Но Apple также говорит, что это возможно через Xcode. https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/CreationGuidelines.html#//apple_ref/doc/uid/20002254-BAJHGGGA

Я добился создания зонтичной структуры с помощью этого простого подхода на Xcode 5.1. Нам просто нужно позаботиться о какой-то особой конфигурации для привязки подрамники к зонтичной структуре. Вот мой подход: -

1) Установите реальный Static iOS Framework на Xcode 5.1 из описанного здесь метода: - https://github.com/kstenerud/iOS-Universal-Framework.

Теперь "Статическая платформа iOS" может быть создана с использованием новой опции в Xcode.

enter image description here

2) Создайте Static iOS Framework и измените настройки Target-> Build Settings-> Architectures-> Architectures на стандартные архитектуры. Это создаст структуру со всеми стандартными архитектурами.

enter image description here

3) Отрегулируйте файлы заголовка в Target-> Build Phase-> Copy Headers. Мы можем установить видимость файла заголовка здесь.

enter image description here

4) Подстройте подстроку в UmbrellaFramework в Target->Build Phase -> Link Binary With Libraries. Возможно, нам понадобится связать другую стандартную структуру в зависимости от нашего использования.

enter image description hereenter image description here

5) Нам также может понадобиться добавить ресурсы Bundle в Target-> Build Phase-> Copy Bundle Resources, если нам нужно.

enter image description here

6) Нам также может потребоваться добавить -ObjC в Target-> Build Settings->Linking-> Other Linker Flag, так как нам может потребоваться загрузить большую подфраграмму, в которой есть много категорий для загрузки или для загрузки дополнительных фреймворков.

enter image description here

7) Добавьте Copy File с помощью Target-> Build Phases-> +-> New Copy File Build Phase.

enter image description here

8) Измените свое назначение на Frameworks и добавьте туда SubFramework.framework. Это скопирует SubFramework в Umbrella Framework.

enter image description hereenter image description here

9) Для демонстрации я добавил два демо-метода в классе UmbrellaFramework. Один, чтобы продемонстрировать вызов метода зонтичной структуры и один для вызова метода подфайлов.

enter image description here <Т411 >

10) Выберите iOS Device и заархивируйте проект UmbrellaFramework с Menu->Product->Archive. Это создаст нашу зонтичную структуру и все это.

enter image description here

11) Теперь пришло время создать новый демонстрационный проект и связать его с UmbrellaFramework.

enter image description here

12) Просто импортируйте заголовок UmbrellaFramework и вызовите два метода. Он отобразит сообщения Hello в окне журнала.

enter image description here

Ответ 2

Чтобы создать основанную на Swift платформу Umbrella Framework, содержащую Sub-Framework, вы можете следовать приведенному ниже пошаговому руководству: Структура зонтика