287 votes

Changer le nom du paquet pour Android dans React Native

J'ai utilisé react-native init MyApp pour initialiser une nouvelle application React Native. Cela a créé entre autres un projet Android avec le package com.myapp .

Quelle est la meilleure façon de changer le nom de ce paquet, par exemple en : com.mycompany.myapp ?

J'ai essayé de le changer dans AndroidManifest.xml mais ça a créé d'autres erreurs, donc je suppose que ce n'est pas le bon moyen.

Une idée ?

0 votes

Faites un clic gauche sur le nom du paquet et choisissez l'option Refactor--> Rename pour renommer le nom du paquet.

1 votes

Ce qui marche le mieux pour moi maintenant, c'est de trouver et remplacer.

7 votes

Vous pouvez également essayer ceci saumya.github.io/ray/articles/72

648voto

Cherniv Points 12988

J'ai renommé le sous-dossier du projet de : " Android/app/src/main/java/MY/APP/ OLD_ID / " à : " Android/app/src/main/java/MY/APP/ NOUVEAU_ID / "

Puis j'ai échangé manuellement les anciens et les nouveaux identifiants de paquet :

En : Android/app/src/main/java/MY/APP/NEW_ID/MainActivity.java :

package MY.APP.NEW_ID;

Sur Android/app/src/main/java/MY/APP/NEW_ID/MainApplication.java :

package MY.APP.NEW_ID;

Sur Android/app/src/main/AndroidManifest.xml :

package="MY.APP.NEW_ID"

Et dans Android/app/build.gradle :

applicationId "MY.APP.NEW_ID"

Sur Android/application/BUCK :

android_build_config(
  package="MY.APP.NEW_ID"
)
android_resource(
  package="MY.APP.NEW_ID"
)

Nettoyage de 'Gradle' à la fin (en /Android dossier) :

./gradlew clean

28 votes

Je dois également modifier le fichier BUCK pour remplacer l'ancienne valeur du paquet par la nouvelle. Par ailleurs, les deux fichiers MainAcitivity.java et MainApplication.java doivent être déplacés vers le nouveau chemin physique.

6 votes

J'ai également renommé le répertoire android/app/src/main/java/com/old_app_name/ à ...com/new_app_name/ et cela semble fonctionner.

2 votes

J'ai eu l'erreur "Failed to finalize session : INSTALL_FAILED_UPDATE_INCOMPATIBLE" jusqu'à ce que je force manuellement le nettoyage du simulateur de l'appareil Android : adb uninstall my.package.name ... Donc, les instructions sont bien, mais le simulateur Android peut "s'accrocher" aux anciennes informations d'une mauvaise manière qui donne l'impression que les instructions ne fonctionnent pas. (Et le fait de désinstaller simplement l'application n'a PAS résolu ce problème !)

106voto

Javid Al Karuzi Points 80

J'utilise le react-native-rename* paquet npm. Installez-le via

npm install react-native-rename -g

Ensuite, à partir de la racine de votre projet React Native, exécutez ce qui suit :

react-native-rename "MyApp" -b com.mycompany.myapp

0 votes

C'est simple et délicat, j'ai juste besoin de mettre à jour le MainApplication.java manuellement.

155 votes

Merci, j'ai cassé le projet

0 votes

@AkashRajput avez-vous résolu votre problème ? Faites-nous savoir si vous avez trouvé une solution.

45voto

Olusola Omosola Points 116

Pour changer le nom du paquet de com.myapp à : com.mycompany.myapp (par exemple),

  1. Pour l'application iOS de l'application react, utilisez xcode - sous général.
  2. Pour l'application Android, ouvrez le build.gradle au niveau du module. Celui de l'application android/app dossier. Vous y trouverez

    // ... defaultConfig { applicationId com.myapp // ... } // ...

Changez le com.myapp à tout ce dont vous avez besoin.

J'espère que cela vous aidera.

8 votes

C'est le moyen le plus simple de changer le nom de votre paquet. Bien que cela ne change pas le nom de votre paquet local, cela changera votre prochain paquet de construction. Merci ! Après avoir fait cela, faites ./gradlew clean et ensuite ./gradlew app:assembleRelease .

2 votes

"Cependant, le applicationId et le local package sont indépendants les uns des autres", " applicationId identifie de manière unique votre application sur l'appareil et dans le Google Play Store". developer.Android.com/studio/build/application-id

0 votes

Ne fonctionne pas pour moi No matching client found for package name 'xxxxx'

10voto

Aishwarya Points 174

Allez dans le studio Android

Cliquez avec le bouton droit de la souris sur votre paquet (très probablement com) -> Refractor -> Rename -> Entrez le nouveau nom du paquet dans la boîte de dialogue -> Do Refractor

Il renommera votre nom de paquet partout.

0 votes

Je pense que cela n'affectera pas la structure du projet dans son ensemble.

0 votes

Comment faire avec un projet React-Native JS ?

9voto

Varun Kumar Points 260

Si vous utilisez Android Studio-

en changeant com.myapp à com.mycompany.myapp

  1. créer une nouvelle hiérarchie de paquets com.mycompany.myapp sous android/app/src/main/java

  2. Copier toutes les classes de com.myapp à com.mycompany.myapp en utilisant l'interface graphique d'Android studio

  3. Android studio se chargera de mettre un nom de paquet approprié pour toutes les classes copiées. Ceci est utile si vous avez des modules personnalisés et que vous ne voulez pas remplacer manuellement tous les fichiers .java.

  4. Mise à jour android/app/src/main/AndroidManifest.xml et android/app/build.gradle (remplacer com.myapp à com.mycompany.myapp

  5. Synchroniser le projet (gradle build)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X