Comme je suis nouveau dans la langue maternelle, alors s’il ya des problèmes par étapes, faites-le-moi savoir.
J'ai construit une application native Android native à l'aide de la commande, conformément à la documentation.
réagit natif Android
lors de l'exécution sur le périphérique, la commande suivante a été utilisée
réagit natif sous Android
ce qui me donne la sortie de 2 fichiers apk dans mon dossier/project/Android/app/build/output/apk
maintenant, lorsque j'utilise pour installer cet apk après l'installation, il demande à un serveur de développement de se connecter pour regrouper le JS. Mais mon exigence est que l'utilisateur n'ait pas à lutter avec le serveur de développement, il a juste besoin d'installer l'apk et tout est fait.
Ont traversé quelques questions de stackoverflow mais pas utile pour construire un apk non signé qui ne nécessite pas de serveur de développement.
Pouvez-vous m'aider à trouver la façon dont la façon de construire et non signée apk en natif?
Vous devez créer manuellement le bundle pour une construction de débogage.
Bundle debug build:
#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
Ensuite, pour compiler l'APK après avoir groupé:
$ cd Android
#Create debug build:
$ ./gradlew assembleDebug
#Create release build:
$ ./gradlew assembleRelease #Generated `apk` will be located at `Android/app/build/outputs/apk`
P.S. Une autre approche pourrait consister à modifier les scripts Gradle.
S'il vous plaît suivez ces étapes.
Regroupez vos js:
si vous avez index.Android.js à la racine du projet, lancez
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 vous avez index.js à la racine du projet, lancez
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
Créer un apk de débogage:
cd Android/
./gradlew assembleDebug
Ensuite, vous pouvez trouver votre apk ici:
cd app/build/outputs/apk/
Avec moi, dans le répertoire du projet, exécutez les commandes suivantes.
Pour réagir l'ancienne version native (vous verrez index.Android.js à la racine):
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 ../
Pour réagir à la nouvelle version native (vous voyez simplement index.js à la racine):
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 ../
Le fichier apk sera généré à:
Dans votre répertoire de projet racine
Assurez-vous que vous avez déjà le répertoire Android/app/src/main/assets /, sinon créez un répertoire, puis créez un nouveau fichier et enregistrez-le sous le nom index.Android.bundle
et placez-le comme ceci - Android/app/src/main/assets/index.Android.bundle
Après cela, cette
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
Ensuite, vous pouvez obtenir apk
dans app/build/output/apk/debug/app-debug.apk
Après avoir suivi le première réponse , vous pouvez exécuter votre application à l'aide de
react-native run-Android --variant=debug
Et votre application s'exécutera sans avoir besoin de l'emballeur
Pour les utilisateurs Windows, si toutes les étapes ont bien été suivies: https://facebook.github.io/react-native/docs/signed-apk-Android.html
Vous devez uniquement exécuter: gradlew assembleRelease
Et votre fichier sera:
Emplacement: E:\YourProjectName\Android\app\build\outputs\apk
Il peut être possible de générer une version d'apk non signée à des fins de test afin de pouvoir fonctionner sur votre mobile.
Au début, j'ai eu les erreurs d'écran rouge comme le plus mentionné ici. mais j'ai suivi la même chose qui a été mentionnée ici et cela a fonctionné pour moi.
Sur votre console à partir du répertoire de travail, exécutez ces quatre commandes
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
Et puis le fichier APK produira sur: Android\app\build\sorties\apk\debug\app-debug.apk
Je suis sur réagit natif 0.55.4, en gros je devais lier manuellement:
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
Ensuite, connectez votre appareil via USB, activez le débogage USB. Vérifiez le périphérique connecté avec adb devices
.
Enfin, lancez react-native run-Android
qui installera l'apk de débogage sur votre téléphone et vous pourrez l'exécuter correctement avec le serveur de développement.
Remarque:
index.js
gradlew assembleRelease
ne génère que les apks de version non signés qui ne peuvent pas être installésJuste au cas où quelqu'un d'autre se retrouverait récemment dans le même problème, j'utilise React Native 0.59.8 (testé avec RN 0.60 également) et je peux confirmer certaines des autres réponses, voici la procédure :
Désinstallez la dernière version compilée de votre application installée sur votre appareil.
Exécuter 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
lancer cd Android/ && ./gradlew assembleDebug
Obtenez votre app-debug.apk dans le dossier Android/app/build/output/apk/debug
bonne chance!
J'ai trouvé une solution changeant les buildTypes comme ceci:
buildTypes {
release {
signingConfig signingConfigs.release
}
}