Comme je suis nouveau dans React-Native, si quelque chose ne va pas dans les étapes, faites-le moi savoir.
J'ai créé une application Android native React en utilisant la commande selon la documentation
android natif de réaction
lors de l'exécution sur l'appareil, la commande suivante a été utilisée
réaction native run-android
ce qui me donne la sortie de 2 fichiers apk dans mon dossier de projet / android / app / build / sorties / 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 à se débattre avec le serveur de développement, il doit simplement installer l'apk et tout est fait.
J'ai parcouru quelques questions sur le stackoverflow mais pas utile pour créer un apk non signé qui ne nécessite pas de serveur de développement.
Pouvez-vous m'aider à trouver comment créer un apk non signé en natif?
la source
Réponses:
Vous devez créer manuellement le bundle pour une version de débogage.
Compilation de débogage de bundle:
Ensuite, pour créer l'APK après le regroupement:
PS Une autre approche pourrait être de modifier les scripts gradle.
la source
--assets-dest ./android/app/src/main/res/
Veuillez suivre ces étapes.
Regroupez vos js:
si vous avez index.android.js dans la racine du projet, exécutez
si vous avez index.js dans la racine du projet, exécutez
Créez un apk de débogage:
Ensuite, vous pouvez trouver votre apk ici:
la source
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
Dernière mise à jour
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, après cela, créez un nouveau fichier et enregistrez-le sous
index.android.bundle
et placez votre fichier comme cet android / app / src / main / assets / index.android .paquetAprès cela, exécutez ceci
Ensuite, vous pouvez accéder
apk
à app / build / sorties / apk / debug / app-debug.apkla source
index.android.bundle
est vraiment important pour ne pas utiliser de serveur de développement dans l'hôte.Avec moi, dans le répertoire du projet, exécutez les commandes suivantes.
Pour l'ancienne version native de react (vous verrez index.android.js en root):
Pour la nouvelle version native de react (vous voyez juste index.js en root):
Le fichier apk sera généré à l'adresse:
la source
$ 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
doit être remplacé par--entry-file index.js
pour les projets plus récents qui ontindex.js
au lieu deindex.android.js
dans la racine de leur répertoire de projet.Après avoir suivi la première réponse , vous pouvez exécuter votre application en utilisant
Et votre application fonctionnera sans avoir besoin du conditionneur
la source
À partir de react-native 0.57, aucune des réponses fournies précédemment ne fonctionnera plus, car les répertoires dans lesquels gradle s'attend à trouver le bundle et les actifs ont changé.
Méthode simple sans bundle natif de réaction
Le moyen le plus simple de créer une version de débogage est de ne pas utiliser la
react-native bundle
commande du tout, mais simplement de modifier votreapp/build.gradle
fichier.À l'intérieur de la
project.ext.react
carte dans leapp/build.gradle
fichier, ajoutez l'bundleInDebug: true
entrée. Si vous voulez que ce ne soit pas une--dev
construction (pas d'avertissements et de bundle minifié), vous devez également ajouter l'devDisabledInDebug: true
entrée à la même carte.Avec bundle React-Native
Si, pour une raison quelconque, vous devez ou souhaitez utiliser la
react-native bundle
commande pour créer le bundle, puis./gradlew assembleDebug
pour créer l'APK avec le bundle et les actifs, vous devez vous assurer de placer le bundle et les actifs dans les chemins corrects, là où gradle peut les trouver.À partir de 0,57 natif de réaction, ces chemins sont
android/app/build/generated/assets/react/debug/index.android.js
pour le bundleet
android/app/build/generated/res/react/debug
pour les actifs. Ainsi, les commandes complètes pour regrouper et créer manuellement l'APK avec le bundle et les actifs sont: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
puis
./gradlew assembleDebug
Chemin du bundle et des actifs
Notez que les chemins où gradle recherche le bundle et les actifs peuvent être sujets à changement. Pour savoir où se trouvent ces chemins, regardez le
react.gradle
fichier dans votrenode_modules/react-native
répertoire. Les lignes commençant pardef jsBundleDir =
etdef resourcesDir =
spécifient les répertoires dans lesquels gradle recherche respectivement le bundle et les actifs.la source
Pour les utilisateurs Windows si toutes les étapes ont bien suivi: 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
la source
Je suis sur React native 0.55.4, en gros, j'ai dû regrouper manuellement:
Ensuite, connectez votre appareil via USB, activez le débogage USB. Vérifiez l'appareil connecté avec
adb devices
.Enfin, exécutez
react-native run-android
ce qui installera l'apk de débogage sur votre téléphone et vous pourrez l'exécuter correctement avec le serveur de développementRemarque:
index.js
gradlew assembleRelease
génère uniquement les apks non signés qui ne peuvent pas être installésla source
Il peut être possible de générer une version apk non signée à des fins de test afin de pouvoir l'exécuter sur votre mobile.
Au départ, j'ai eu les erreurs d'écran rouge comme la plupart mentionnées 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
Et puis le fichier APK produira sur: android \ app \ build \ sorties \ apk \ debug \ app-debug.apk
la source
Juste au cas où quelqu'un d'autre se heurterait récemment au 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 les étapes:
Désinstallez la dernière version compilée de votre application installée sur votre appareil
Courir
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
courir
cd android/ && ./gradlew assembleDebug
Obtenez votre app-debug.apk dans le dossier android / app / build / sorties / apk / debug
bonne chance!
la source
android/app/build/generated/assets/react/debug/index.android.js
et que les actifs soient dans àandroid/app/build/generated/res/react/debug
partir de react-native 0.57.J'ai trouvé une solution modifiant les buildTypes comme ceci:
la source