Restrictions générales
Vous ne pouvez installer un fichier APK qui a le même nom de paquet qu'une application déjà installée que si les deux conditions suivantes sont remplies.
- L'application installée et le fichier APK que vous voulez installer doivent être signés par la même clé de développeur, sinon vous obtiendrez le message suivant
INSTALL_FAILED_UPDATE_INCOMPATIBLE Package <packagename> signatures do not match previously installed version; ignoring!
- Il y a une protection contre le déclassement de l'application, ce qui signifie que le
versionCode
(spécifié dans AndroidManifest.xml
) de l'application à installer doivent être égales ou supérieures à celles de l'application déjà installée. Sinon, vous obtiendrez l'erreur INSTALL_FAILED_VERSION_DOWNGRADE
. Ceci ne peut être contourné que pour les applications qui ont l'option de contrôle de l'accès. debuggable
activé. Ensuite, vous pouvez ajouter l'option adb -d
pour contourner cette restriction.
Le dernier facteur est la version d'Android. Le comportement de adb install
semble dépendre de la version d'Android.
Android 10+
Sur Android 10 et 11, j'ai pu observer qu'Android ne se soucie pas de savoir si une application est déjà installée ou non.
Par conséquent, tant que le nouveau fichier APK est signé avec la même clé de développeur, vous pouvez simplement exécuter adb install
pour installer une version actualisée de l'application.
Android 9 et inférieur
Sur Android 9 et avant, cependant, par défaut, le simple adb install
échouera simplement avec l'erreur INSTALL_FAILED_ALREADY_EXISTS
si une application portant le même nom de paquet est déjà installée. Le fichier APK spécifié ne sera pas installé dans ce cas.
Seulement si vous utilisez adb install -r
une application existante qui a le même nom de paquet que celle que vous voulez installer peut être remplacée mais il y a deux restrictions.