Como soy nuevo en react-native, si hay algo mal en los pasos, hágamelo saber.
He creado una aplicación de Android nativa reaccionar usando el comando según la documentación
reaccionar nativo de android
mientras se ejecutaba en el dispositivo, se utilizó el siguiente comando
react-native run-android
que me da la salida de 2 archivos apk en mi carpeta de proyecto / android / app / build / salidas / apk
ahora, cuando uso para instalar este apk después de la instalación, solicita un servidor de desarrollo para conectar para agrupar el JS. Pero mi requisito es que el usuario no tenga que luchar con el servidor de desarrollo, solo necesita instalar el apk y todo está hecho.
He pasado por algunas preguntas de stackoverflow pero no es útil para construir apk sin firmar que no requiere servidor de desarrollo.
¿Pueden ayudarme a encontrar la forma en que la forma de construir y apk sin firmar en reaccionar nativo?
fuente
Respuestas:
Debe crear manualmente el paquete para una compilación de depuración.
Compilación de depuración de paquete:
Luego, para crear los APK después de la agrupación:
PD: Otro enfoque podría ser modificar los scripts gradle.
fuente
--assets-dest ./android/app/src/main/res/
Por favor sigue esos pasos.
Haz tu js:
si tiene index.android.js en la raíz del proyecto, ejecute
si tiene index.js en la raíz del proyecto, ejecute
Crear apk de depuración:
Entonces puedes encontrar tu apk aquí:
fuente
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
Última actualización
En su directorio de proyecto raíz
Asegúrese de que ya tiene el directorio android / app / src / main / assets / , si no crea un directorio, luego cree un nuevo archivo y guárdelo
index.android.bundle
y coloque su archivo como este android / app / src / main / assets / index.android .hazDespués de eso corre esto
Luego puede acceder
apk
a app / build / salidas / apk / debug / app-debug.apkfuente
index.android.bundle
es realmente importante para no usar el servidor de desarrollo en el host.Conmigo, en el directorio del proyecto ejecute los siguientes comandos.
Para la versión antigua nativa de reacción (verá index.android.js en la raíz):
Para reaccionar nueva versión nativa (solo ve index.js en la raíz):
El archivo apk se generará en:
fuente
$ mkdir -p android/app/src/main/assets && rm -rf android/app/build && 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 && cd android && ./gradlew assembleDebug
--entry-file index.android.js
debe reemplazarse--entry-file index.js
por proyectos más nuevos que tengan enindex.js
lugar deindex.android.js
en la raíz de su directorio de proyectos.Después de seguir la primera respuesta , puede ejecutar su aplicación usando
Y su aplicación se ejecutará sin necesidad del empaquetador
fuente
A partir de react-native 0.57, ninguna de las respuestas proporcionadas anteriormente funcionará más, ya que los directorios en los que Gradle espera encontrar el paquete y los activos han cambiado.
Forma simple sin paquete react-native
La forma más sencilla de crear una compilación de depuración es sin usar el
react-native bundle
comando, sino simplemente modificando suapp/build.gradle
archivo.Dentro del
project.ext.react
mapa en elapp/build.gradle
archivo, agregue labundleInDebug: true
entrada. Si desea que no sea una--dev
compilación (sin advertencias y paquete minimizado), también debe agregar ladevDisabledInDebug: true
entrada al mismo mapa.Con el paquete react-native
Si por alguna razón necesita o desea usar el
react-native bundle
comando para crear el paquete y luego./gradlew assembleDebug
crear el APK con el paquete y los activos, debe asegurarse de colocar el paquete y los activos en las rutas correctas, donde gradle puede Encuéntralos.A partir de react-native 0.57, esas rutas son
android/app/build/generated/assets/react/debug/index.android.js
para el paquetey
android/app/build/generated/res/react/debug
para los activos. Entonces, los comandos completos para agrupar y compilar manualmente el APK con el paquete y los activos son:react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/generated/assets/react/debug/index.android.bundle --assets-dest ./android/app/build/res/react/debug
y entonces
./gradlew assembleDebug
Paquete y ruta de activos
Tenga en cuenta que las rutas donde Gradle busca el paquete y los activos pueden estar sujetas a cambios. Para saber dónde están esas rutas, mire el
react.gradle
archivo en sunode_modules/react-native
directorio. Las líneas que comienzan condef jsBundleDir =
ydef resourcesDir =
especifican los directorios donde Gradle busca el paquete y los activos respectivamente.fuente
Para usuarios de Windows si todos los pasos se siguieron correctamente a partir de esto: https://facebook.github.io/react-native/docs/signed-apk-android.html
Solo necesitas ejecutar:
gradlew assembleRelease
Y tu archivo será:
Ubicación:
E:\YourProjectName\android\app\build\outputs\apk
fuente
Estoy en reaccionar nativo 0.55.4, básicamente tuve que agrupar manualmente:
Luego conecte su dispositivo a través de usb, habilite la depuración de usb. Verifique el dispositivo conectado con
adb devices
.Por último, ejecute
react-native run-android
lo que instalará el apk de depuración en su teléfono y puede ejecutarlo bien con el servidor de desarrolloNota:
index.js
gradlew assembleRelease
solo genera los apks de lanzamiento sin firmar que no se pueden instalarfuente
Puede ser posible generar una versión apk sin firmar con fines de prueba para que pueda ejecutar en su móvil.
Inicialmente obtuve los errores de pantalla roja como los más mencionados aquí. pero seguí lo mismo que se mencionó aquí y funcionó para mí.
En su consola desde el directorio de trabajo, ejecute estos cuatro comandos
Y luego el archivo APK se producirá en: android \ app \ build \ salidas \ apk \ debug \ app-debug.apk
fuente
En caso de que alguien más esté teniendo este mismo problema recientemente, estoy usando React Native 0.59.8 (también probado con RN 0.60) y puedo confirmar algunas de las otras respuestas, estos son los pasos:
Desinstale la última versión compilada de su aplicación instalada que tiene en su dispositivo
correr
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
correr
cd android/ && ./gradlew assembleDebug
Obtenga su app-debug.apk en la carpeta android / app / build / salidas / apk / debug
¡buena suerte!
fuente
android/app/build/generated/assets/react/debug/index.android.js
y los activos estén enandroid/app/build/generated/res/react/debug
react-native 0.57.Encontré una solución cambiando buildTypes como este:
fuente