Поскольку я не хотел изменять исходные скрипты сборки, я решил проблему немного иначе, чем @pauloya. Так вот что я сделал:
- Я добавил проект пустышки C# консольного к решению
- Defined новых конфигураций сборки для решения (в моем случае бете и QA)
Установите сборку варианты для всех проектов следующим образом (не забудьте проверить сборки флажок для проекта пустышки):
TestCordovaApp: Debug | Dummy: Debug
TestCordovaApp: Debug | Dummy: Beta
TestCordovaApp: Debug | Dummy: QA
TestCordovaApp: Release | Dummy: Release
TestCordovaApp: Distribution | Dummy: Distribution
Добавлена конфигурационный файл для каждой среды к проекту пустышки
вручную отредактировали Dummy.csproj выполнить это волшебство после создания как так
<Target Name="AfterBuild">
<!-- Environments.plist -->
<Copy Condition="Exists('$(ProjectDir)configurations\ios\Environments.$(ConfigurationName).plist')" SourceFiles="$(ProjectDir)configurations\ios\Environments.$(ConfigurationName).plist" DestinationFiles="$(ProjectDir)..\TestCordovaApp\plugins\TestPlugin\src\ios\config\Environments.plist" />
<!-- TestConfig.xml -->
<Copy Condition="Exists('$(ProjectDir)configurations\android\TestConfig.$(ConfigurationName).xml')" SourceFiles="$(ProjectDir)configurations\android\TestConfig.$(ConfigurationName).xml" DestinationFiles="$(ProjectDir)..\TestCordovaApp\plugins\TestPlugin\src\android\config\TestConfig.xml" />
</Target>
Добавлена ссылка на проект пустышки из TestCordovaApp (просто игнорировать эту ошибку, что ссылочный тип не поддерживается этим типом проекта)
ПРИМЕЧАНИЕ: восстанавливание требуется каждый раз, когда вы хотите изменить конфигурацию сборки, но с CTP3 восстановления требуется для почти каждого редактирования один внести в приложение, так что это не должно быть проблемой.
Для потребляя значения в Android предполагая один файл ресурс со строками может быть достигнут с помощью метода хелперов, как это:
private String GetStringResource(String resourceKey)
{
String packageName = cordova.getActivity().getPackageName();
int resourceId = cordova.getActivity().getResources().getIdentifier(resourceKey, "string", packageName);
return cordova.getActivity().getString(resourceId);
}
Для потребляя значения из прошивки я использовал код по этой ссылке: [ https://gist.github.com/besi/2782045]
Похоже, что добавление настраиваемых конфигураций невозможно. Я получаю сообщение об ошибке: Запрошенная конфигурация сборки не поддерживается. Поддерживаются только отладка, выпуск и распространение. Кроме этого, мне удалось реализовать следующее решение для iOS: https://gist.github.com/besi/2782045. Я все еще ищу аналогичное решение для Android, или я пойду на ваше решение для «управления» файлами ant.properties. – user1992449
Мы смогли настроить пользовательские конфигурации, но потребовалось значительное количество настроек с файлами, чтобы добиться этого.Я думаю, мы передали эту ошибку «Запрошенная конфигурация сборки не поддерживается», отредактировав файл csproj/jsproj, чтобы добавить настраиваемую конфигурацию ... – pauloya
Наше решение далека от идеала, потому что нам все равно нужно перестраивать проекты индивидуально, перестраивая решение, t, похоже, запускает все сборки, и для iOS нам все равно нужно изменить конфигурацию на «Распространение» для проекта cordova или он не будет построен на Mac. Очень грязно, но работает как-то ... – pauloya