Buscar este blog

Aviso

El autor de éste blog no se hace responsable de los posibles daños o perdidas de información, que pudieran ocasionarse en su sistema o su vida por la aplicación de la información aquí contenida.

viernes, 15 de febrero de 2019

Problema al instalar muchas aplicaciones hechas en ionic (Android)

Es usual que desarrolles muchas aplicaciones en ionic o que te pasen alguna para probar.

Las aplicaciones instaladas desde el computador se instalan para todos los usuarios de Android y aunque la desinstales para uno, probáblemente quedarán instaladas en los otros usuarios.

Qué pasa cuando quieres instalar una apk y sale el siguiente error?:



App not installed.

El error no es realmente muy comunicativo y buscando por la web te pueden dar soluciones desde reiniciar el móvil, ver la integridad del apk hasta formatearlo!

Entonces aquí presento qué se hizo para arreglar el problema.

- Si mi objetivo es instalar una aplicación y no funciona con la interfaz gráfica de Android, iré a los comandos.

Para ello usa el móvil en modo desarrollador, activa la opción de compartir archivos, instala android studio y ubica la aplicación adb que por lo general está en la ruta "/home/user/Android/Sdk/platform-tools/adb" o dónde hayas instalado el SDK de Android. Ejecuta el siguiente comando para instalar el apk que hayas generado o el que te hayan pasado.

$ adb install app-debug.apk 

Te debería salir el error:

adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package io.ionic.starter signatures do not match previously installed version; ignoring!]

La instalación del apk no fue exitosa básicamente porque hay otra instalada, pero no te aparece en la interfaz de Android para hacerlo porque hay otros usuarios que la tienen.

- La congetura nos lleva a, quiero instalar una aplicación nueva, hay otra instalada con el mismo nombre y no tiene la misma firma digital, así que tengo que desinstalarla y así me dejará instalar la nueva, pero cuál es el nombre? Usando el comando aapt podemos saberlo.

Esta aplicación por lo general lo encuentras en la ruta /home/usuario/android-sdks/build-tools/25.0.2/aapt el número 25.0.2 lo puedes reemplazar por el de la versión que tengas instalada, estas versiones de android se consiguen instalandolas con el SDK Manager https://stuff.mit.edu/afs/sipb/project/android/docs/tools/help/sdk-manager.html o con comandos https://developer.android.com/studio/command-line/sdkmanager

$ aapt dump badging app-debug.apk 

Este comando nos mostrará la siguiente información:

package: name='io.ionic.starter' versionCode='1' versionName='0.0.1' platformBuildVersionName='0.0.1'
sdkVersion:'19'
targetSdkVersion:'26'
uses-permission: name='android.permission.INTERNET'
application-icon-120:'res/mipmap-ldpi-v4/icon.png'
application-icon-160:'res/mipmap-mdpi-v4/icon.png'
application-icon-240:'res/mipmap-hdpi-v4/icon.png'
application-icon-320:'res/mipmap-xhdpi-v4/icon.png'
application-icon-480:'res/mipmap-xxhdpi-v4/icon.png'
application-icon-640:'res/mipmap-xxxhdpi-v4/icon.png'
application: label='' icon='res/mipmap-mdpi-v4/icon.png'
application-debuggable
launchable-activity: name='io.ionic.starter.MainActivity'  label='FriedsApp' icon=''
feature-group: label=''
uses-feature: name='android.hardware.faketouch'
uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps'
main
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales:
densities: '120' '160' '240' '320' '480' '640'

De esto se destaca el package name 'io.ionic.starter' básicamente este es el mismo para todos los proyectos de ionic!, ahí es donde surge el problema.

$ adb devices -l

El comando lista los dispositivos, usa el identificador para ejecutar comandos remotamente de android.

$ adb -s 2af5ba1d9805 shell pm list packages
$ adb -s 2af5ba1d9805 shell pm uninstall io.ionic.starter
$ adb install app-debug.apk

Con esto listas los paquetes instalados, desinstala el de ionic e instala el apk deseado y lo importante, problema solucionado :D


Buena suerte!

Más populares

Archivo del blog