Лучший способ поделиться кодом между несколькими проектами в iOS


Мы планируем запустить серию приложений в AppStore. Они будут для каких-то разных журналов, показывая разное содержимое, загруженное с сервера через XML. Таким образом, эти приложения будут сделаны из точно одного и того же кода (это универсальное приложение, поэтому оно будет работать как в iPhone/iPad).

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

Однако это привело к ужасному методу, который способствует неудачам и ошибкам. Если я забуду изменить какое-то изображение, так как вы не можете увидеть его в скомпилированном файле (как он включен), они окажутся в магазине (и мне понадобится четыре или пять дней, чтобы изменить приложение).

Я пытаюсь найти лучший подход, который позволит сохранить проекты как можно более независимыми. Я бы хотел иметь возможность совместно использовать всю кодовую базу: представления, классы и nibs, а также создавать различные проекты для каждого журнала.

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

Надеюсь, я все объяснил.

Как всегда, большое вам спасибо.

4 7

4 ответа:

Большую часть общего кода следует сохранить как библиотечный проект. Каждый окончательный проект должен быть связан с этим проектом и предоставлять изображения / активы вместе с кодом, чтобы упомянуть эти активы в общем коде. В моей повседневной работе я также пишу общую библиотеку, которая используется 2 продуктами/приложениями на моем работодателе.

Проект Xcode может иметь несколько целей, все цели используют общий код, но каждая цель получает свои собственные ресурсы (значки, изображения, текст, списки и т. д.) из другого подкаталога / папки в том же каталоге/папке проекта. Затем вы можете проверить все это или только общий источник в вашем репозитории системы управления версиями.

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

У вас может быть один проект Xcode, который создает несколько приложений. Вам нужно будет создать отдельную информацию.plist с различным идентификатором пакета для каждого приложения.

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