Как заменить значения конфигурации json перед задачей сборки Xamarin iOS и Android в конвейере
Я работаю над приложением Xamarin.Forms как для iOS, так и для Android, в общем проекте у меня есть файл appsettings.json, в который я помещаю некоторые ключи / значения базовых настроек.
Значения этих ключей, которые я хочу заменить, в зависимости от переменных конфигурации, которые у меня есть в файле.YML внутри моих конвейеров сборки, поэтому, например, ключ { "url": "" } для конвейера отладки будет {"url": " http://google.com/"}, а для Release Pipeline будет {" url":" http://amazon.com/" }.
Раньше я обрабатывал этот сценарий в проектах.NET Core, но я не знаю, как это сделать с помощью Xamarin, я знаю, что в предварительно определенных задачах конвейера Azure есть задача преобразования файлов, но для этого требуется пакет или папка.zip. путь, чтобы найти.json и преобразовать его, но для мобильных приложений я думаю, что нет ничего плохого, как папка предварительной сборки.
Прошу вашей помощи.
1 ответ
Как заменить значения конфигурации json перед задачей сборки Xamarin iOS и Android в конвейере
Если у вас разные конвейеры для разных переменных конфигурации. Вы можете просто использовать задачу Заменить токены, чтобы обновить значение ключаurl
в appsettings.json
файл напрямую.
Вы можете проверить мою предыдущую ветку для подробностей.
Кроме того, если вы используете один конвейер для разных переменных конфигурации, нам необходимо использовать команду ведения журнала и REST API ( Definitions - Update) для обновления значения переменной определения сборки из задачи сборки.
Добавьте встроенную задачу PowerShell со следующей командой ведения журнала, чтобы установить переменную
URL
:$config= $Env:configuration Write-Host "Current config is $config" if ($config -eq "Debug") { Write-Host ("##vso[task.setvariable variable=URL]http://google.com") } elseif ($config -eq "release") { Write-Host ("##vso[task.setvariable variable=URL]http://amazon.com") }
Используйте REST API (
Definitions - Update
), чтобы обновить значение переменной определения сборки значениемURL
.Используйте задачу Заменить токены, чтобы обновить значение ключа
url
вappsettings.json
файл
Надеюсь это поможет.