studio que permisos example editar androidmanifest allowbackup android installation android-manifest

que - ¿Cómo instalar la aplicación dos veces sin interferencias en Android?



permisos android manifest (4)

Tengo una aplicación para Android (llamémosla X), quiero crear una segunda aplicación X2 pero basada en la otra aplicación. Así que cambié la propiedad del nombre de la aplicación de manifiesto a X2, también cambié el nombre del paquete ... pero aún cuando instalo X2, ¡la aplicación X se borra!

¿Qué propiedades debo cambiar para poder instalar las dos aplicaciones de forma independiente en un dispositivo? Estoy trabajando en eclispe.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.app1" android:versionCode="1" android:versionName="1.0" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name1" android:theme="@style/AppTheme" >

despues del cambio

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.app2" android:versionCode="1" android:versionName="1.0" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name2" android:theme="@style/AppTheme" >


Necesitaba esa herramienta porque el cliente quería poder usar la versión beta y la versión de lanzamiento de la aplicación al mismo tiempo. Estoy cambiando el espacio de nombres principal de la APK para lograr esto usando apktool.

Sigo estos pasos:

  • descompilar apk usando apktool java -jar apktool.jar d -o out -f my-app.apk
  • Reemplace com.mainnamespace por com.mainnamespacebeta en todos los archivos en el directorio out
  • renombra el directorio out / smali / com / mainnamespace a out / smali / com / mainnamespacebeta
  • compilar apk de nuevo java -jar apktool.jar b -o ./debug.apk -f ./out
  • firma el apk con la nueva clave usando jarsigner. jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.keystore ./debug.apk "contraseña" -storepass "contraseña" -keypass "contraseña"

Aquí está el manual de cómo firmar el apk para obtener key.keystore - http://developer.android.com/tools/publishing/app-signing.html

También he creado un script simple para Linux - https://gist.github.com/vavrecan/8596303


Pues funcionó en otro dispositivo con plataforma más reciente! De todos modos la respuesta correcta será que solo hay que cambiar el nombre y el paquete de la aplicación.

EDITAR 1: Ahora, si está utilizando Android Studio, use applicationIdSuffix para tener una aplicación para cada versión.

debug { applicationIdSuffix ".debug" }

Lea más aquí developer.android.com


paso 1: seleccione (haga clic en) el paquete principal de su aplicación y haga clic en Shift + f6 y cambie el nombre del paquete

Paso 2: vaya a build.gradle y cambie el ID de aplicación al nuevo nombre del paquete como se muestra a continuación por defectoConfig {

applicationId "com.sample.main"//give your new package name minSdkVersion 15 targetSdkVersion 25 }

Paso 3: limpiar el proyecto

Paso 4: Ejecute el proyecto y vea que funcionará seguro

Feliz codificación .....


también cambiará el nombre del paquete en el módulo de gradle script build.gradle funcionará

defaultConfig { applicationId "com.me.mesurvey" //put your package name here// minSdkVersion 14 targetSdkVersion 19 }