Comment puis-je générer un apk qui peut s'exécuter sans serveur avec reactive native?

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 avec cd 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.

Si vous obtenez l' 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.bu‌​ndle --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.