He creado mi aplicación, puedo ejecutarla en mi emulador local (y también en mi dispositivo Android dentro de la misma red cambiando el servidor de depuración).
Sin embargo, quiero crear un APK que pueda enviar a alguien sin acceso al servidor de desarrollo y quiero que puedan probar la aplicación.
Veo que hay una sección Uso de paquete sin conexión en la sección iOS de la documentación. Pero no pude descubrir cómo lograr lo mismo para Android. es posible? ¿Si es así, cómo?
ACTUALIZACIÓN: En la respuesta a esta pregunta ( Android no pudo cargar el paquete JS ) se dice que el paquete fuera de línea se puede descargar desde el servidor de desarrollo. Pero cuando obtengo el paquete del servidor de desarrollo, los archivos de imagen no se pueden cargar.
fuente
Respuestas:
Después de la respuesta de Aditya Singh, el apk generado (sin firmar) no se instalaba en mi teléfono. Tuve que generar un apk firmado usando las instrucciones aquí .
Lo siguiente funcionó para mí:
Coloque el
my-release-key.keystore
archivo debajo delandroid/app
directorio en su carpeta de proyecto. Luego edite 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 clave)Si usa MacOS, puede almacenar su contraseña en el llavero siguiendo las instrucciones aquí en lugar de almacenarla en texto sin formato.
Luego edite app / build.gradle y asegúrese de que haya lo siguiente (es posible que sea necesario agregar las secciones con SignatureConfigs SignatureConfig):
Luego ejecuta el comando
cd android && ./gradlew assembleRelease
,Para Windows 'cd android' y luego ejecute el
gradlew assembleRelease
comando, y encuentre su apk firmado enandroid/app/build/outputs/apk/app-release.apk
fuente
Deberá crear una clave para firmar el apk. Use a continuación para crear su clave:
Use una contraseña cuando se le solicite
Una vez que se genera la clave, úsela para generar la compilación instalable:
Genera la construcción usando gradle
Sube el APK a tu teléfono. La
-r
bandera reemplazará la aplicación existente (si existe)Aquí se menciona una descripción más detallada: https://facebook.github.io/react-native/docs/signed-apk-android.html
ACTUALIZACIÓN : Basado en comentarios de @shashuec y @Fallen
si recibes un error
ejecute mkdir android / app / src / main / assets
fuente
react-native bundle
parte. ¡Gracias por tu respuesta!gradlew.bat assembleRelease
.Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
. cuando trato de instalar el apk.ENOENT: no such file or directory, open 'android/app/src/main/assets/index.android.bundle'
ejecuciónmkdir android/app/src/main/assets
Deberías usar Android Studio para este proceso. Es simplemente más simple. Pero primero ejecute este comando en su directorio de aplicaciones nativas react:
Para la versión más nueva de react-native (por ejemplo, react native 0.49.0 y así sucesivamente ...)
Para la versión anterior de react-native (0.49.0 y menos)
Luego, use Android Studio para abrir la carpeta 'android' en su directorio de aplicaciones nativas, le pedirá que actualice Gradle y algunas otras cosas. vaya a construir-> Generar APK firmado y siga las instrucciones desde allí. Es realmente sencillo.
fuente
Ejecute este comando:
fuente
cd android && ./gradlew installRelease
y obtuve este errorTask 'assembleRelease.' not found in root project 'project'. Some candidates are: 'assembleRelease'.
para React Native 0.49 y más
deberías ir al directorio del proyecto en la terminal y ejecutar ese comando
si es inferior a 0,49
Luego, use Android Studio para abrir la carpeta 'android' en su directorio de aplicaciones nativas, le pedirá que actualice Gradle y algunas otras cosas. vaya a construir-> Generar APK firmado y siga las instrucciones desde allí. Que bien.
fuente
Si consigues
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
.Intenté usar el método de @ Aditya para generar un archivo APK sin firmar e instalarlo, pero cuando fui a instalarlo en mi tableta Android, me dio un error de
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
.Me imagino que esto se debe a que el archivo APK no estaba firmado y la tableta no estaba contenta con esto. Entonces, después de generar el archivo de paquete React Native pude generar un archivo APK firmado, como es normal, a través de Android Studio.
Por cierto, nuestra aplicación es una aplicación de Android completamente funcional que ya existe en Play Store y solo estamos agregando React Native en pedazos pequeños, porque es increíble.
Para resumir, aquí están mis pasos:
1) Generar paquete nativo React:
2) Genere un archivo APK firmado desde Android Studio.
3) Instale el archivo APK firmado en el dispositivo USB:
La
-d
bandera solo le indicaadb
que se instale en el dispositivo USB conectado, en caso de que también tenga un emulador ejecutándose. Si desea instalar en cualquier emulador, suelte la-d
bandera.4) Beneficio!
fuente
Pruebe a continuación, generará una aplicación-debug.apk en su carpeta raíz / android / app / build / salidas / apk / debug
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
luego ve a la carpeta de Android y ejecuta
./gradlew assembleDebug
fuente
Si alguien quiere construir sin las teclas de Play Store, entonces este comando sería muy útil.
# react-native run-android --variant=release
Después de completar la compilación, puede encontrar el apk en el archivo de compilación de lanzamiento.
fuente
Vaya al directorio del proyecto y ejecute el comando:
fuente
Si obtiene un error relacionado con index.android.js. Esto se debe a que está utilizando la nueva versión nativa de React (estoy usando 0.55.4) Simplemente reemplace "index.android.js" por "index.js"
fuente
Tengo otra solución: - Generar una clave de firma Puede generar una clave de firma privada usando keytool. En Windows, Keytool debe ejecutarse desde C: \ Archivos de programa \ Java \ jdkx.x.x_x \ bin.
Coloque el archivo my-release-key.keystore en el directorio android / app en la carpeta de su proyecto.
Edite el archivo android / app / build.gradle en su carpeta de proyecto y agregue la configuración de firma,
y correr
Esto le dará dos archivos en android \ app \ build \ salidas \ apk app-release.apk y app-release-unsigned.apk ahora instalan app-release.apk en su dispositivo Android.
fuente
Esperemos que ayude a los nuevos principiantes.
Documento oficial aquí
Si no tiene un almacén de claves que usar antes del comando, omita
Generación de una clave de firma / archivo de almacén de claves Puede generar una clave de firma privada utilizando keytool. En Windows, Keytool debe ejecutarse desde C: \ Archivos de programa \ Java \ jdkx.x.x_x \ bin.
obtendrá un archivo como my-release-key.keystore
Configuración de variables de gradle Coloque el archivo my-release-key.keystore en el directorio android / app en la carpeta de su proyecto. Editar los archivos de Android / gradle.properties y agregue el siguiente (***** reemplazan con la contraseña correcta del almacén de claves, alias y contraseña de clave), enableAapt2 conjunto es falsa solución, como la versión Android 3.0 Gradle problema
luego agregue estas aplicaciones / buid.gradle (aplicación)
debajo de la configuración predeterminada
y versión de tipo Inside Build {}
luego simplemente ejecute este comando en la terminal de Android Studio. A continuación, los comandos se automatizarán por encima de todas las respuestas
si ventanas
si linux / mac
si tiene algún error, elimine toda la carpeta de compilación y ejecute el comando
que otra vez
fuente
gradle clean
... He estado luchando con esto durante un tiempo para obtener esos errores de compilación, ¡muchas gracias por esta respuesta!Para las últimas versiones nativas de reacción para agrupar el proyecto
Androide
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
iOS
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
fuente
La forma de GUI en Android Studio
fuente
Usar android studio para generar apk firmado para el proyecto de android de react también es una opción buena y fácil, abrir el proyecto de android de react en android studio y generar pulsaciones de teclas y apk firmado.
fuente
Consulte la documentación oficial de react-native en Generating Signed APK
React-Native Generating Signed APK
fuente