android - una - ¿Construir e instalar apk sin firmar en el dispositivo sin el servidor de desarrollo?
has subido un apk con una firma no válida (11)
Ú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 como
index.android.bundle
y coloque su archivo como este
android / app / src / main / assets / index.android.bundle
Después de eso corre esto
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
Entonces puede obtener
apk
en
app / build / salidas / apk / debug / app-debug.apk
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
Android reaccionar nativo
mientras se ejecutaba en el dispositivo, se utilizó el siguiente comando
reaccionar nativo 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 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?
Cambie a la carpeta de Android y ejecute
./gradlew assembleRelease
para crear el archivo de lanzamiento que puede enviar a su dispositivo Android.
La versión apk no necesita tener el servidor de desarrollo ejecutándose.
Conmigo, en el directorio del proyecto ejecute los siguientes comandos.
Para reaccionar versión antigua nativa (verá index.android.js en la raíz):
mkdir -p android/app/src/main/assets && rm -rf android/app/build && 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 && cd android && ./gradlew clean assembleRelease && cd ../
Para reaccionar nueva versión nativa (solo ve index.js en la raíz):
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 clean assembleRelease && cd ../
El archivo apk se generará en:
- Gradle <3.0: android / app / build / salidas / apk /
- Gradle 3.0+: android / app / build / salidas / apk / release /
Debe crear manualmente el paquete para una compilación de depuración.
Compilación de depuración de paquete:
#React-Native 0.49.0+
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
#React-Native 0-0.49.0
react-native bundle --dev false --platform android --entry-file index.android.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
Luego, para crear los APK después de la agrupación:
$ cd android
#Create debug build:
$ ./gradlew assembleDebug
#Create release build:
$ ./gradlew assembleRelease #Generated `apk` will be located at `android/app/build/outputs/apk`
PD: Otro enfoque podría ser modificar los scripts gradle.
Después de seguir la primera respuesta , puede ejecutar su aplicación usando
react-native run-android --variant=debug
Y su aplicación se ejecutará sin necesidad del empaquetador
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 tenga en su dispositivo
-
Ejecute el
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
-
ejecute
cd android/ && ./gradlew assembleDebug
-
Obtenga su app-debug.apk en la carpeta android / app / build / salidas / apk / debug
¡buena suerte!
Encontré una solución cambiando buildTypes como este:
buildTypes {
release {
signingConfig signingConfigs.release
}
}
Estoy en reaccionar nativo 0.55.4, básicamente tuve que agrupar manualmente:
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
Luego conecte su dispositivo a través de usb, habilite la depuración de usb.
Verifique el dispositivo conectado con dispositivos
adb devices
.
Por último, ejecute
react-native run-android
que instalará el apk de depuración en su teléfono y puede ejecutarlo bien con el servidor de desarrollo
Nota:
-
Desde 0.49.0, el punto de entrada es un solo
index.js
-
gradlew assembleRelease
solo genera los apks de lanzamiento sin firmar que no se pueden instalar
Para el usuario de Windows si todos los pasos se siguieron correctamente: https://facebook.github.io/react-native/docs/signed-apk-android.html
Solo necesita ejecutar:
gradlew assembleRelease
Y tu archivo será:
- app-release.apk
- app-release-unaligned.apk
Ubicación:
E:/YourProjectName/android/app/build/outputs/apk
Por favor sigue esos pasos.
Agrupa tu js:
si tiene index.android.js en la raíz del proyecto, ejecute
react-native bundle --dev false --platform android --entry-file index.android.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug
si tiene index.js en la raíz del proyecto, ejecute
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
Crear apk de depuración:
cd android/
./gradlew assembleDebug
Entonces puedes encontrar tu apk aquí:
cd app/build/outputs/apk/
Puede ser posible generar una versión apk no firmada para fines de prueba para que pueda ejecutarla en su dispositivo 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
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
cd android
gradlew assembleDebug
gradlew assembleRelease
Y luego el archivo APK se producirá en: android / app / build / salidas / apk / debug / app-debug.apk