2017-10-04 2 views
1

Je voudrais être en mesure de vérifier visuellement rapidement qu'une nouvelle version a été installée sur mon émulateur. Une façon dont je considère, est d'avoir la valeur @ string/app_name être mis à jour sur chaque nouvelle construction avec un hachage unique, ou peut-être juste une valeur aléatoire de quatre char. Puis, quand je vois l'icône de l'application sur le téléphone, elle aura une valeur différente de la dernière version et je saurai qu'elle a été mise à jour.android - update @ string/app_name avec hachage unique pour chaque build

Existe-t-il un moyen de mettre à jour par programmation les valeurs @string au moment de la construction? Peut-être certaines fonctionnalités de Gradle dont je ne suis pas au courant?

Répondre

1

je faisais quelque chose que vous avez besoin:

Ce code remplace la valeur dans <string name="logging"></string>

\ scripts \ set_strings_xml_app_version.sh:

sed -E -i "" "s/<string name=\"logging\" translatable=\"false\">[a-zA-Z0-9]+<\/string>/<string name=\"logging\" translatable=\"false\">$1<\/string>/g" "$2" 

\ app \ build.gradle:

android { 
//... 
} 

dependencies { 
//... 
} 

task setStringsXMLAppVersion << { 
     def cmd = projectDir.absolutePath + "/../scripts/set_strings_xml_app_version.sh 0x" + Integer.toHexString(android.defaultConfig.versionCode).toUpperCase() + " " + projectDir.absolutePath + "/../app/src/main/res/values/strings.xml" 
     def sout = new StringBuffer() 
     def serr = new StringBuffer() 
     def proc = cmd.execute() 
     proc.consumeProcessOutput(sout, serr) 
     proc.waitForOrKill(1000) 
     if (serr) { 
      println "Error while replacing versionCode in strings.xml: $serr" 
     } 
    } 

    preBuild.dependsOn setStringsXMLAppVersion 
+0

Merci beaucoup, je vais vérifier! –