Saltar al contenido

¿Cómo puedo generar una apk que se pueda ejecutar sin servidor con react-native?

Solución:

Siguiendo la respuesta de Aditya Singh, el apk generado (sin firmar) no se instalaría en mi teléfono. Tuve que generar una apk firmada usando las instrucciones aquí.

Lo siguiente funcionó para mí:

$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

Colocar el my-release-key.keystore archivo bajo el android/app
directorio en la carpeta de su proyecto. Luego edita el archivo
~/.gradle/gradle.properties y agregue lo siguiente (reemplace **** con la contraseña correcta del almacén de claves, el alias y la contraseña de la clave)

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=****
MYAPP_RELEASE_KEY_PASSWORD=****

Si está usando MacOS, puede almacenar su contraseña en el llavero usando las instrucciones aquí en lugar de almacenarla en texto sin formato.

Luego edite app / build.gradle y asegúrese de que lo siguiente esté allí (es posible que deban agregarse las secciones con signingConfigs signingConfig):

...
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}
...

Luego ejecutar el comando cd android && ./gradlew assembleRelease ,

Para ventanas ‘cd android’ y luego ejecutar gradlew assembleRelease comando, y encuentra tu firmado apk bajo android/app/build/outputs/apk/app-release.apk

Tendrás que crear una clave para firmar la apk. Utilice a continuación para crear su clave:

 keytool -genkey -v -keystore my-app-key.keystore -alias my-app-alias -keyalg RSA -keysize 2048 -validity 10000

Use una contraseña cuando se le solicite

Una vez que se genera la clave, úsela para generar la compilación instalable:

 react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

Genera la compilación usando gradle

 cd android && ./gradlew assembleRelease

Sube el APK a tu teléfono. los -r la bandera reemplazará la aplicación existente (si existe)

adb install -r ./app/build/outputs/apk/app-release-unsigned.apk

Aquí se menciona una descripción más detallada: https://facebook.github.io/react-native/docs/signed-apk-android.html

ACTUALIZAR: Basado en comentarios de @shashuec y @Fallen

si obtiene un error

ENOENT: no existe tal archivo o directorio, abra ‘android / app / src / main / assets / index.android.bundle’

ejecutar mkdir android / app / src / main / assets

Ejecute este comando:

react-native run-android --variant=release

Tenga en cuenta que --variant=release solo está disponible si ha configurado la firma con cd android && ./gradlew assembleRelease.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *