私のアプリでは、実際には約10種類の異なる製品の味があります。 彼らのやり方は次のようなものです:eng_testDebug、eng_prodDebug、eng_testRelease、eng_prod他の言語についてはe.t.cをお読みください。現在の製品の味のためにstrings.xmlからapp_nameを取得する
これでビルド名のテストでビルドするためのアプリ名に " - テスト"を追加する作業があります。
今、main sourceSetからstring.xmlを解析し、gradestファイル内のmanifestPlaceHoldersを使用してアプリケーション名をビルドするソリューションが見つかりました。しかし、それは主な味のためにのみ動作します。
def getAppName() {
def stringsFile = android.sourceSets.main.res.sourceFiles.find { it.name.equals 'strings.xml' }
String s = new XmlParser().parse(stringsFile).string.find { [email protected] 'app_name' }.text();
return s.replaceAll("\"", "");
}
そしてここで私は「テスト」を追加するように変更:
def getEditedAppName() {
if (getCurrentFlavor().contains("test")) {
return getAppName() + "(Test)";
} else {
return getAppName();
}
}
getCurrentFlavor()私返しフレーバー名が使用ここ は、私が使用していますデフォルトのstrings.xml APP_NAMEを取得するためのコードですin:組み立て作業。
基本的には、現在の建物の風味に応じて他のソースセットファイルを取得することができますので、風味のapp_nameを解析できますか?
残念ながら、gradleファイルの各フレーバのapp_name文字列を無視することは、私にとっては有効なオプションではありません。
答えてくれてありがとうございますが、私はすでにそれぞれのフレーバーとapp_nameのそれぞれにフォルダがあります。しかし、今では、各味のapp_nameを取得するために、これらの無効なファイルをgradleから解析する方法を見つけることができません。 –
これは通常、gradle corectlyを設定すると自動的に行われます – glethien
私の回答が更新されました – glethien