web-dev-qa-db-fra.com

Construire et installer apk unsigned sur l'appareil sans le serveur de développement?

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

enter image description here

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?

120
kAy_4337270

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.

194
Dmitry Mugtasimov

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/
78
m4r00p

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é à:

  • Gradient <3.0: Android/application/construction/sorties/apk/
  • Gradle 3.0+: Android/application/construction/sorties/apk/release/
27
Nhan Cao

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, 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

8
Jeeva

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

5
Abdellah Alaoui

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:

  • app-release.apk
  • app-release-unaligned.apk

Emplacement: E:\YourProjectName\Android\app\build\outputs\apk

3
Dharam Mali

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

2
user3195905

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:

  • À partir de la version 0.49.0, le point d'entrée est un seul index.js
  • gradlew assembleRelease ne génère que les apks de version non signés qui ne peuvent pas être installés
1
Shem Leong

Juste 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 :

  1. Désinstallez la dernière version compilée de votre application installée sur votre appareil.

  2. 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

  3. lancer cd Android/ && ./gradlew assembleDebug

  4. Obtenez votre app-debug.apk dans le dossier Android/app/build/output/apk/debug

bonne chance!

0
HugoRMR

J'ai trouvé une solution changeant les buildTypes comme ceci:

buildTypes {
  release {
    signingConfig signingConfigs.release
  }
}
0