Я использую следующие перехватчики:
<hook src="hooks/before-build/controller.js" type="before_build" />
<hook src="hooks/before-build/controller.js" type="before_run" />
<hook src="hooks/after-build/controller.js" type="after_build" />
<hook src="hooks/after-build/controller.js" type="after_run" />
Они просто заменяют переменные в файле config.xml, поэтому они будут соответственно адаптированы к промежуточной или производственной средам.
Например, взятьэта строка:
<preference name="APP_SECRET" value="ANDROID-APPCENTER-APP-SECRET" />
и замените секрет.
После завершения сборки он снова заполняет config.xml старыми значениями - для следующей сборки, чтобы иметь старуюссылки для следующего использования.
В Android это работает просто потрясающе - у меня есть другой сгенерированный config.xml для stage или prod.Но в IOS я получаю эту ошибку, когда я пытаюсь запустить или собрать:
The product name change (<name> tag) in config.xml is not supported dynamically.
To change your product name, you have to remove, then add your ios platform again.
Make sure you save your plugins beforehand using `cordova plugin save`.
cordova plugin save
cordova platform rm ios
cordova platform add ios
Я думаю, что IOS начинает собираться без асинхронного ожидания ожидания выполнения хуков.И поэтому он пытается собрать без надлежащего файла config.xml, а затем с ошибкой.
Как сказать IOS ожидать завершения хука и к тому времени, когда это произойдет, начать сборку с новым конфигом.XML