Как создать подмодули импорта Swift - PullRequest
0 голосов
/ 22 мая 2018

В настоящее время мы модулировали наш проект Swift, используя несколько целей.Цели компилируются в файлы .framework, которые являются зависимостями более высоких целей.У нас есть общая цель модуля, несколько целей модуля продукта и исходная цель приложения.Common будет содержать код очень низкого уровня, общие библиотеки и любой конкретный код, который может совместно использоваться несколькими целями продукта.

Таким образом, приложение будет выполнять:

 import Common
 import Product1
 import Product2

И код цели Product1 можетdo:

 import Common

Обычно поток является общим -> Product * -> App, где Common никогда не будет ссылаться на другое направление.

К сожалению, Common стал большим и имеет много кода, который может не понадобиться для каждого импорта.

То, что я хотел бы достичь в Swift, это что-то вроде этого:

import Common.API
import Common.PurchaseCheckout

Я посмотрел на карты-модули, которые позволяют настроить подмодули импорта, но все это сосредоточено вокруг заголовков target-c, а не Swift.Есть ли быстрая вариация?

Конкретная потребность в том, что мы хотим создать легкий SDK, который использует только некоторые функции, и как только мы «импортируем Common», он раздувает SDK, иэто добавляет зависимости от довольно многих не связанных какао-стручков.Мы можем включать файлы в целевой SDK файл за файлом, но надеялись, что модульность упростит задачу.

РЕДАКТИРОВАТЬ

Похоже, я могу использовать такие вещи как:

import class Common.FileDownloadAPI
import class Common.FileUploadAPI

возможно в моем коде, чтобы создатьвпечатление частичного импорта.Тем не менее, кажется, что module-maps - это способ в target-c сделать это за вас, создав подмодуль.Я не хочу писать 100 импортов классов, чтобы импортировать половину из 200 файлов, которые подмодуль может сделать за один импорт.Так что все еще ищу идеи.

...