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 concd android && ./gradlew assembleRelease
.