Как изменить файл Info.plist приложения iOS после того, как файл ipa создан и подписан для конвейера выпуска нескольких сред - PullRequest
0 голосов
/ 03 мая 2019

У нас есть приложение, которое нацелено на 2 разные бэкэнд-среды, скажем, Staging и Production.Каждый имеет свой собственный набор URL-адресов и конфигураций.В настоящее время мы перестраиваем все приложение каждый раз, когда не будем выпускать версию для конкретной среды с другим идентификатором пакета и набором конфигурации.Однако это не идеально.В идеале мы хотели бы иметь конвейер сборки и выпуска.Сборка произойдет только один раз, затем в конвейере выпуска будет сделан шаг к выпуску Staging и еще один шаг к Production.

Устранить отставку приложения с новым идентификатором пакета и профилем обеспечения легко, мы используемfastlane run resign команда.Тем не менее, я понятия не имею, как я могу изменить содержимое пакета в той же команде, чтобы не нарушить подпись.Я представляю себе свойство в Info.plist, скажем, Environment.В коде, который я прочитал бы это значение, и если это значение скажет «Staging», он будет использовать конфигурации промежуточного URL, иначе производственный.

Еще лучшим и еще более гибким подходом будет наличие отдельного файла .plist для конфигураций, в котором будут храниться все соответствующие конфигурации, а затем мы заменим его другим файлом в процессе выпуска.Преимущество заключается в поддержке еще одной среды без изменения кода.При первом подходе каждый раз, когда изменяются свойства среды или создается новая среда, нам нужно изменить код, добавив еще один оператор if.

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

И кстати, мы используем подход подстановки файлов на Android, и он работает как на ладони.Мы используем apktool утилиту для распаковки apk, замены файла конфигурации, а затем перепаковки и повторной отправки.

Спасибо за ответы.

...