J'ai construit mon application, je peux l'exécuter sur mon émulateur local (et aussi sur mon appareil Android au sein du même réseau en changeant de serveur de débogage).
Cependant, je veux créer un APK que je peux envoyer à quelqu'un sans accès au serveur de développement et je veux qu'il puisse tester l'application.
Je vois qu'il y a une section Utilisation du bundle hors ligne sur la section iOS de la documentation. Mais je n'arrivais pas à comprendre comment accomplir la même chose pour Android. Est-ce possible? Si c'est le cas, comment?
MISE À JOUR: Sur la réponse à cette question ( Android n'a pas pu charger le bundle JS ), il est dit que le bundle hors ligne peut être téléchargé depuis le serveur de développement. Mais lorsque j'obtiens le bundle du serveur de développement, les fichiers image ne peuvent pas être chargés.
la source
Réponses:
Suite à la réponse d'Aditya Singh, l'apk généré (non signé) ne s'installerait pas sur mon téléphone. J'ai dû générer un apk signé en utilisant les instructions ici .
Ce qui suit a fonctionné pour moi:
Placez le
my-release-key.keystore
fichier sous leandroid/app
répertoire de votre dossier de projet. Modifiez ensuite le fichier~/.gradle/gradle.properties
et ajoutez ce qui suit (remplacez **** par le mot de passe, l'alias et le mot de passe de clé corrects)Si vous utilisez MacOS, vous pouvez stocker votre mot de passe dans le trousseau en utilisant les instructions ici au lieu de le stocker en texte clair.
Ensuite, modifiez app / build.gradle et assurez-vous que les éléments suivants sont présents (les sections avec signatureConfigs. SignatureConfig peuvent devoir être ajoutées):
Exécutez ensuite la commande
cd android && ./gradlew assembleRelease
,Pour Windows 'cd android' puis exécutez
gradlew assembleRelease
commande, et trouvez votre apk signé sousandroid/app/build/outputs/apk/app-release.apk
la source
Vous devrez créer une clé pour signer l'apk. Utilisez ci-dessous pour créer votre clé:
Utilisez un mot de passe lorsque vous y êtes invité
Une fois la clé générée, utilisez-la pour générer la version installable:
Générez le build en utilisant gradle
Téléchargez l'APK sur votre téléphone. Le
-r
drapeau remplacera l'application existante (si elle existe)Une description plus détaillée est mentionnée ici: https://facebook.github.io/react-native/docs/signed-apk-android.html
MISE À JOUR : Basé sur les commentaires de @shashuec et @Fallen
si vous obtenez une erreur
exécutez mkdir android / app / src / main / assets
la source
react-native bundle
partie. Merci pour votre réponse!gradlew.bat assembleRelease
.Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
. quand j'essaie d'installer l'apk.ENOENT: no such file or directory, open 'android/app/src/main/assets/index.android.bundle'
runmkdir android/app/src/main/assets
Vous devez simplement utiliser Android Studio pour ce processus. C'est simplement plus simple. Mais exécutez d'abord cette commande dans le répertoire de votre application native:
Pour une version plus récente de react-native (par exemple react native 0.49.0 et ainsi de suite ...)
Pour la version plus ancienne de react-native (0.49.0 et ci-dessous)
Ensuite, utilisez Android Studio pour ouvrir le dossier `` Android '' dans votre répertoire d'application natif, il vous demandera de mettre à niveau Gradle et d'autres choses. allez dans build-> Générer un APK signé et suivez les instructions à partir de là. C'est vraiment simple.
la source
Exécutez cette commande:
la source
cd android && ./gradlew installRelease
et obtenu cette erreurTask 'assembleRelease.' not found in root project 'project'. Some candidates are: 'assembleRelease'.
pour React Native 0.49 et plus
vous devez aller dans le répertoire du projet sur le terminal et exécuter cette commande
si moins de 0,49
Ensuite, utilisez Android Studio pour ouvrir le dossier `` Android '' dans votre répertoire d'application natif, il vous demandera de mettre à niveau Gradle et d'autres choses. allez dans build-> Générer un APK signé et suivez les instructions à partir de là. Ça va.
la source
Si vous obtenez
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
.J'ai essayé d'utiliser la méthode de @ Aditya pour générer un fichier APK non signé et l'installer, mais quand je suis allé l'installer sur ma tablette Android, cela m'a donné une erreur de
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
.J'imagine que c'est parce que le fichier APK n'était pas signé et que la tablette n'était pas satisfaite de cela. Ainsi, après avoir généré le fichier bundle React Native, j'ai pu générer un fichier APK signé, comme d'habitude, via Android Studio.
Soit dit en passant, notre application est une application Android pleinement fonctionnelle qui existe déjà dans le Play Store et nous y ajoutons simplement React Native en morceaux de la taille d'une bouchée, car c'est génial.
Donc, pour résumer, voici mes étapes:
1) Générez le bundle React Native:
2) Générez un fichier APK signé à partir d'Android Studio.
3) Installez le fichier APK signé sur le périphérique USB:
L'
-d
indicateur indique simplementadb
d'installer sur le périphérique USB connecté, dans le cas où vous avez également un émulateur en cours d'exécution. Si vous souhaitez installer sur n'importe quel émulateur, déposez le-d
drapeau.4) Profit!
la source
Essayez ci-dessous, il générera un app-debug.apk sur votre dossier racine / android / app / build / outputs / 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
puis allez dans le dossier android et exécutez
./gradlew assembleDebug
la source
Si quelqu'un veut construire sans clés playstore, cette commande serait très utile.
# react-native run-android --variant=release
Une fois la construction terminée, vous pouvez trouver l'apk dans le fichier de version.
la source
Accédez au répertoire du projet et exécutez la commande:
la source
Si vous obtenez une erreur impliquant index.android.js. C'est parce que vous utilisez la nouvelle version native de React (j'utilise la version 0.55.4) Remplacez simplement "index.android.js" par "index.js"
la source
J'ai une autre solution: - Génération d'une clé de signature Vous pouvez générer une clé de signature privée à l'aide de keytool. Sous Windows, le keytool doit être exécuté à partir de C: \ Program Files \ Java \ jdkx.x.x_x \ bin.
Placez le fichier my-release-key.keystore sous le répertoire android / app dans votre dossier de projet.
Modifiez le fichier android / app / build.gradle dans votre dossier de projet et ajoutez la configuration de signature,
et courir
Cela vous donnera deux fichiers dans android \ app \ build \ outputs \ apk app-release.apk et app-release-unsigned.apk maintenant installez app-release.apk sur votre appareil Android.
la source
J'espère que cela aidera les nouveaux débutants
Doc officiel ici
Si vous n'avez pas de magasin de clés à utiliser avant la commande, sinon, ignorez
Génération d'une clé de signature / d'un fichier de clés Vous pouvez générer une clé de signature privée à l'aide de keytool. Sous Windows, le keytool doit être exécuté à partir de C: \ Program Files \ Java \ jdkx.x.x_x \ bin.
vous obtiendrez un fichier comme my-release-key.keystore
Configuration des variables gradle Placez le fichier my-release-key.keystore sous le répertoire android / app dans votre dossier de projet. Modifier le fichier / Android gradle.properties et ajoutez la ligne suivante (remplacer ***** avec le mot de passe correct keystore, alias et mot de passe clé), enableAapt2 set faux est solution de contournement, en tant que version Android 3.0 gradle problème
puis ajoutez ces app / buid.gradle (app)
sous la configuration par défaut
et version de type Inside Build {}
puis exécutez simplement cette commande dans le terminal de studio Android. Les commandes ci-dessous automatiseront surtout les réponses
si windows
si linux / mac
si vous avez une erreur, supprimez tout le dossier de construction et exécutez la commande
que de nouveau
la source
gradle clean
... J'ai du mal avec cela pendant un certain temps à obtenir ces erreurs de construction, merci beaucoup pour cette réponse !!Pour les dernières versions natives de Reaper pour regrouper le projet
Android
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
la source
La manière GUI dans Android Studio
la source
L'utilisation d'Android Studio pour générer une apk signée pour le projet Android de React est également une option simple et efficace, ouvrez le projet Android de React dans Android Studio et générez une frappe et une apk signée.
la source
Reportez-vous à la documentation officielle de react-native sur Génération d'APK signé
Génération signée React-Native APK
la source