У меня есть приложение с несколькими вариантами, в котором я использую dexguard, и я решил настроить его на Jenkins. Лицензии Dexguard находятся в /app/flavor/ для каждой лицензии, но Jenkins всегда берет лицензию из последней версии. Сборка завершается с ошибкой с кодом:
Имя пакета из файла AndroidManifest.xml [com.example.android.flavor1.something] не соответствует имени пакета [com.example.android.flavor6.something,com.example.android.flavor6.test,com. example.android.flavor6.something.prod,com.example.android.flavor6.test] из вашей лицензии DexGuard [C:\Users\CurrentUser\AndroidStudioProjects\MyApp\flavor6\dexguard-license.txt]
Я попытался переименовать dexguard.license в dexguard-licenseX.txt (где X — это номер варианта) и настроить в файле flavors build.gradle поиск этого имени, который даже не смог найти файл лицензии. Я также попытался настроить расположение лицензии в gradle.properties с помощью systemProp.dexguard.licence=./flavor1
.
сейчас я использую
release {
System.properties['dexguard.license'] = buildscript.sourceFile.parent
proguardFiles getDefaultDexGuardFile('dexguard-release.pro'), 'dexguard-rules.pro', 'proguard-rules.pro'
}
И это работает только в том случае, если я пытаюсь собрать последний вариант, в противном случае мне приходится копировать dexguard-license в домашнюю папку (что не является проблемой локально, но это проблема на Jenkins).
Есть ли способ настроить dexguard на jenkins?