У нас есть приложение, которое нацелено на 2 разные бэкэнд-среды, скажем, Staging и Production.Каждый имеет свой собственный набор URL-адресов и конфигураций.В настоящее время мы перестраиваем все приложение каждый раз, когда не будем выпускать версию для конкретной среды с другим идентификатором пакета и набором конфигурации.Однако это не идеально.В идеале мы хотели бы иметь конвейер сборки и выпуска.Сборка произойдет только один раз, затем в конвейере выпуска будет сделан шаг к выпуску Staging и еще один шаг к Production.
Устранить отставку приложения с новым идентификатором пакета и профилем обеспечения легко, мы используемfastlane run resign
команда.Тем не менее, я понятия не имею, как я могу изменить содержимое пакета в той же команде, чтобы не нарушить подпись.Я представляю себе свойство в Info.plist
, скажем, Environment
.В коде, который я прочитал бы это значение, и если это значение скажет «Staging», он будет использовать конфигурации промежуточного URL, иначе производственный.
Еще лучшим и еще более гибким подходом будет наличие отдельного файла .plist
для конфигураций, в котором будут храниться все соответствующие конфигурации, а затем мы заменим его другим файлом в процессе выпуска.Преимущество заключается в поддержке еще одной среды без изменения кода.При первом подходе каждый раз, когда изменяются свойства среды или создается новая среда, нам нужно изменить код, добавив еще один оператор if
.
В любом случае, поскольку сейчас нам, по крайней мере, нужно иметь возможностьуказать среду.Если последняя замена файла невозможна, то я надеюсь, что модификация Info.plist может сработать.
И кстати, мы используем подход подстановки файлов на Android, и он работает как на ладони.Мы используем apktool
утилиту для распаковки apk, замены файла конфигурации, а затем перепаковки и повторной отправки.
Спасибо за ответы.