Как управлять одним репозиторием приложения Xcode iOS для нескольких компаний с незначительно разными требованиями?
У меня есть мобильное приложение, разработанное для различных компаний на AppStroe. Каждая компания использует разные конечные точки для сервера / значок / логотип. Мне удалось добавить это в специальный файл plist, и в соответствии с конечной точкой компании я переключился на другую настройку сборки.
Сейчас эти компании переходят на разные способы аутентификации. Один использует другое приложение для аутентификации, а другой использует серверные вызовы. Кроме того, для одной компании я получаю данные один из вызова сервера, а другой из локальных файлов.
Я должен обрабатывать различное поведение входа в систему для разных проектов. В основном это отображение / отключение некоторых дополнительных просмотров. Я не хочу иметь два хранилища или ветки. Потому что почти 85% функциональных возможностей одинаковы. Я хочу добавить функциональность одновременно и к одному, и к нескольким разам только к одному из них и запустить мои тесты и все.
Я ищу способ управления этим приложением, чтобы сохранить большинство функций и оставить его только в одном приложении. Как я могу это сделать? Любое предложение?
1 ответ
Это очень старая проблема. В основном у вас есть два варианта: время сборки и время выполнения; из вашего описания может оказаться, что вам нужны оба (я бы не стал доверять конфигурации для управления моим кодом аутентификации).
Время сборки означает использование условной компиляции (например, какую условную компиляцию использовать для переключения между конкретным кодом Mac и iPhone?) И разные профили сборки для каждого клиента. Я предполагаю, что цели XCode (см. Как управлять кодом нескольких, очень похожих проектов XCode) позволяет вам определять различные профили сборки.
Во время выполнения проверяет карты на Переключение функций.
Я предлагаю не использовать контроль версий для управления нюансами одного и того же приложения, потому что оно быстро превращается в кошмар слияния, даже с Git.