J'ai construit mon application, je peux l'exécuter sur mon émulateur local (et aussi sur mon appareil Android dans le même réseau en modifiant le 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 souhaite qu'ils puissent tester l'application.
Je vois qu'il y a une section Utilisation de la branche hors ligne sur la section iOS de la documentation. Mais je ne pouvais pas comprendre comment faire pour Android. Est-ce possible? Si c'est le cas, comment?
MISE À JOUR: sur la réponse à cette question ( réagissez que l'Android Nroïde n'a pas chargé le lot JS ), on dit que le lot hors ligne peut être téléchargé depuis le serveur de développement. Mais lorsque j'obtiens le bundle depuis le serveur de développement, les fichiers image ne peuvent pas être chargés.
Vous devrez créer une clé pour signer l'apk. Utilisez ci-dessous pour créer votre clé:
keytool -genkey -v -keystore my-app-key.keystore -alias my-app-alias -keyalg RSA -keysize 2048 -validity 10000
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 construction installable:
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/
Générer la compilation en utilisant gradle
cd android && ./gradlew assembleRelease
Téléchargez l'APK sur votre téléphone. L'indicateur -r
remplacera l'application existante (si elle existe)
adb install -r ./app/build/outputs/apk/app-release-unsigned.apk
Une description plus détaillée est mentionnée ici: https://facebook.github.io/react-native/docs/signed-apk-android.html
Exécutez cette commande:
react-native run-android --variant=release
Notez que
--variant=release
n'est disponible que si vous avez configuré la signature aveccd android && ./gradlew assembleRelease
.
Vous devriez simplement utiliser Android studio pour ce processus. C'est simplement plus simple. Mais exécutez d'abord cette commande dans votre répertoire de l'application native réactive:
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/
Ensuite, utilisez le studio Android pour ouvrir le dossier 'android' dans votre répertoire de l'application natif, il vous demandera de passer à jour gradle et d'autres choses. Aller à build-> Générer un APK signé et suivre les instructions à partir de là. C'est vraiment simple.
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'a pas été signé et que la tablette n'était pas satisfaite de cela. Ainsi, après avoir généré le fichier React Native Bundle, j'ai pu générer un fichier APK signé, comme d'habitude, via Android Studio.
En passant, notre application est une application Android entièrement fonctionnelle qui existe déjà dans Play Store et nous ajoutons React Native dans des pièces de taille mordue, car c'est incroyable.
Pour résumer, voici mes démarches:
1) Générer React Native bundle:
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/<your-package-name>/src/main/assets/index.android.bundle --assets-dest android/<your-package-name>/src/main/res/
2) Générer un fichier APK enregistré depuis Android Studio.
3) Installer le fichier APK enregistré sur un périphérique USB:
adb -d install -r <path_to_signed_apk>
4) Profitez!
J'ai une autre solution: – Génération d'une clé de signature Vous pouvez générer une clé de signature privée en utilisant keytool. Sur Windows, keytool doit être exécuté à partir de C: \ Program Files \ Java \ jdkx.x.x_x \ bin.
$ keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
Placez le fichier my-release-key.keystore sous le répertoire Android / application dans votre dossier de projet.
Modifiez le fichier android / app / build.gradle dans votre dossier de projet et ajoutez la configuration de signature,
android { .... signingConfigs { release { storeFile file('my-release-key.keystore') storePassword 'yourpassword' keyAlias 'my-key-alias' keyPassword 'yourpassword' } }}} buildTypes {release {signingConfig signingConfigs.release}}
et courir
gradlew assembleRelease
Cela vous donnera deux fichiers sur android \ app \ build \ outputs \ apk app-release.apk et app-release-unsigned.apk maintenant installez l'application-release.apk dans votre appareil Android.