Dans Android Studio, où sont les fichiers de mappage ProGuard générés après la compilation d'un APK signé?
Je ne sais pas si cela ne fonctionne pas ou si j'ai simplement oublié le chemin du fichier, et ma recherche obligatoire Google / Stack Overflow n'a pas répondu à cela
Réponses:
Il doit se trouver
build/outputs/proguard/release/mapping.txt
dans le répertoire de votre module d'application.Dans la dernière version de ProGuard et Android Studio, le fichier se trouve à l'adresse
build/outputs/mapping/release/mapping.txt
.la source
/app/build/outputs/mapping/brandExampleEnvProductionRelease/mapping.txt
/app/build/outputs/mapping/brandExampleEnvIntegrationBeta/mapping.txt
sont les nouveaux chemins.Pour moi, ils sont à
'build/outputs/mapping/release'
la source
J'ai trouvé plus propre de configurer proguard pour écrire le fichier mapping.txt dans un emplacement en dehors de l'
build/
arborescence de répertoires, afin qu'il puisse être plus commodément vérifié dans le contrôle de version.Pour y parvenir, mettez ceci dans votre
proguard-rules.pro
dossier:Cela le placera (très probablement) dans le même répertoire que votre
proguard-rules.pro
fichier. En fin de compte, vous voudrez probablement l'écrire dans le même répertoire que votre fichier APK et avec un nom équivalent (qui peut inclure la saveur, le type de construction, etc.).Remarque: d'après mon expérience, cela n'est pas annulé par le fichier de modèle proguard (qui a été suggéré par un commentateur à une autre réponse ici).
MISE À JOUR: Si vous avez plusieurs saveurs de produits, alors c'est une bien meilleure solution: https://stackoverflow.com/a/31116608/444761
la source
J'ai trouvé qu'il n'était pas généré, j'ai donc ajouté ceci au fichier de règles
la source
Il est assez tard pour répondre à cette question, mais juste au cas où quelqu'un aurait besoin de ma réponse.
Emplacement du fichier de mappage à désobfusquer:
En général, en mode débogage, vous n'avez pas besoin du fichier de mappage car le masquage est généralement désactivé. Si ce n'est pas le cas, assurez-vous que le fichier build.gradle contient le code ci-dessous pour la variante de débogage.
Quelques Gotchas:
Le fichier mapping.txt est écrasé chaque fois que vous créez une version de version avec ProGuard, prenez donc d'abord une sauvegarde de ce fichier avant de créer une nouvelle version. Cela aidera à masquer la trace de la pile à partir d'une ancienne version de votre application.
En dehors de cela, il existe deux façons de masquer votre code:
1. Téléchargez votre fichier mapping.txt dans Google Play Console:
Lorsque vous publiez votre application sur Google Play, vous pouvez télécharger le fichier mapping.txt pour chaque version de votre APK. Ensuite, Google Play désobfusquera les traces de pile entrantes des problèmes signalés par l'utilisateur afin que vous puissiez les examiner dans la console Google Play.
2. Utilisez l'outil SDK local retrace.sh/retrace.bat:
Parfois, vous souhaitez exécuter la version de version de votre application (en changeant la variante de construction en version et en l'exécutant) pour vérifier et corriger les erreurs afin que cela ne se produise pas en production (lors de la publication sur le Play-Store).
Pour convertir vous-même une trace de pile masquée en une trace lisible, utilisez le script retrace ( retrace.bat sous Windows; retrace.sh sous Mac / Linux ).
Il se trouve dans le
<sdk-root>/tools/proguard/bin/
répertoire.<sdk-root>
est l'endroit où toutes vos bibliothèques et sdks Android ont été installées.Le script prend le fichier mapping.txt et votre trace de pile, produisant une nouvelle trace de pile lisible.
Syntaxe de la commande:
Par exemple:
Je préfère la version locale de l'obscurcissement car c'est assez pratique pour pré-vérifier les erreurs de production.
J'espère que cela aide.
la source
J'utilise la version Android Studio 2.2.2 . Pour moi, il est situé aux endroits suivants:
Pour le débogage:
\app\build\outputs\mapping\debug\mapping.txt
Pour la libération:
\app\build\outputs\mapping\release\mapping.txt
la source
Le voici dans une image - vous le trouverez dans le dossier mapping:
la source
Parce que je suis stupide et que je me perds même quand quelqu'un me dit où se trouve le fichier:
la source