"Библиотечные проекты" в iOS

Некоторое время назад я создал и приложение для Android. Затем мне нужно было создать очень похожее приложение (по функциональности) с некоторыми косметическими изменениями, изменениями в брендинге и мелкомасштабных изменениях. Я реорганизовал исходное приложение в качестве библиотечного проекта, создал приложение, которое использовало этот библиотечный проект, и воссоздал исходную функциональность. Затем я создал новое приложение, которое использовало тот же самый библиотечный проект, а также реализовало небольшие изменения, необходимые для второго приложения. Это работало отлично. Теперь, если требуется изменение, его очень легко реализовать в нескольких приложениях: я просто изменяю проект библиотеки и перекомпилирую все приложения.

У меня также было оригинальное приложение, доступное для iOS, и мне нужно сделать второе приложение доступным для iOS. Я мог бы, естественно, скопировать проект, внести изменения и создать другие приложения. Однако это означало бы двойную работу, если бы мне нужно было что-то изменить в основной функциональности. Я хотел бы иметь возможность реорганизовать проект / приложение iOS аналогично Android, но не уверен, как это сделать - или если такая функциональность даже доступна. Любые предложения очень ценятся.

2 ответа

Вы можете создать Единый проект с разными целями.

Затем у вас будут цели A и B, например, и файлы CoreFile, которые являются общими для всех целей.

Предположим, у вас есть HomeViewController с некоторыми незначительными отличиями. Вы можете создать единый интерфейс HomeViewController.h и две реализации AHomeViewController а также BHomeViewControllerоба расширяются BaseViewController,

Затем откройте AHomeViewController и в FileInspector в поле "Целевое членство" отметьте только цель A. В BHomeViewController вы делаете то же самое. Рисунок 1, иллюстрируйте, что вы должны сделать (имена отличаются от примера, потому что это реальный пример из одного из моих проектов).

введите описание изображения здесь

Если по какой-то причине вам необходимо знать, какие цели вы используете, вы можете определить это с помощью макроса препроцессора на Target -> Build Settings. Как показано на рисунке 2.

введите описание изображения здесь

Тогда вы можете использовать #ifdef APP_CB проверить текущую цель.

Как уже упоминалось, вы действительно можете регулироватьtarget membership [О] каждого файла, который вы добавляете. Но на мой взгляд лучше создать отдельный фреймворк (библиотеку) и добавить его как зависимость

[Потребитель Swift -> Динамическая структура Swift]

Другие вопросы по тегам