web-dev-qa-db-fra.com

Modifier le nom du package pour Android dans React Native

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

Quel est le meilleur moyen de changer ce nom de paquet, par exemple en: com.mycompany.myapp?

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

Une idée?

99
mllm

J'ai changé le nom du sous-dossier du projet de "Android/app/src/main/Java/MY/APP / OLD_ID /" à: "Android/app/src/main/Java/MY/APP / NEW_ID / "

Puis manuellement changé l'ancien et le nouvel identifiant de paquet:

Dans: Android/app/src/main/Java/MY/APP/NEW_ID/MainActivity.Java:

package MY.APP.NEW_ID;

Dans Android/app/src/main/Java/MY/APP/NEW_ID/MainApplication.Java:

package MY.APP.NEW_ID;

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

package="MY.APP.NEW_ID"

Et dans Android/app/build.gradle:

applicationId "MY.APP.NEW_ID"

(Facultatif) Dans Android/app/BUCK:

Android_build_config(
  package="MY.APP.NEW_ID"
)
Android_resource(
  package="MY.APP.NEW_ID"
)

Gradle 'nettoyage à la fin (dans le dossier / Android):

./gradlew clean
223
Cherniv

J'utilise le package react-native-rename npm.

Installer avec

npm install react-native-rename -g

Ensuite, à partir de la racine de votre projet React Native, exécutez la commande suivante:

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

react-native-rename on npm

56
Javid Al Karuzi

Pour remplacer le nom du package com.myapp par: 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 fichier build.gradle au niveau du module. Celui du dossier Android/app. Tu trouveras 

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

Changez le "com.myapp" pour tout ce dont vous avez besoin.

J'espère que cela t'aides. 

6
Olusola Omosola

Le script init génère un identifiant unique pour Android en fonction du nom que vous lui avez attribué (par exemple, com.acmeapp pour AcmeApp).

Vous pouvez voir quel nom a été généré en recherchant la clé applicationId dans Android/app/build.gradle.

Si vous devez modifier cet identifiant unique, procédez comme suit:

Dans le dossier /Android, remplacez toutes les occurrences de com.acmeapp par com.acme.app.

Puis changez la structure de répertoire avec les commandes suivantes:

mkdir Android/app/src/main/Java/com/acme

mv Android/app/src/main/Java/com/acmeapp Android/app/src/main/Java/com/acme/app

Vous avez besoin d'un niveau de dossier pour chaque point de l'identificateur d'application.

Source: https://blog.elao.com/fr/dev/from-react-native-init-to-app-stores-real-quick/

4
Atul Yadav

Aller au studio Android

Cliquez avec le bouton droit de la souris sur votre colis (probablement le com) -> Réfracteur -> Renommer -> Entrez le nouveau nom du colis dans la boîte de dialogue -> Faire réfracteur

Il va renommer votre nom de paquet partout.

4
Aishwarya

Si vous utilisez Android Studio-

changer com.myapp en com.mycompany.myapp

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

  2. Copiez toutes les classes de com.myapp à com.mycompany.myapp à l'aide de l'interface graphique 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 dans tous les fichiers .Java.

  4. Mettre à jour Android/app/src/main/AndroidManifest.xml et Android/app/build.gradle (remplacer com.myapp par com.mycompany.myapp

  5. Synchroniser le projet (construction gradle)

3
Varun Kumar

Suivez les étapes simples pour renommer vos app name et Package name

  1. Modifiez simplement la variable name dans le fichier package.json selon vos besoins et enregistrez-la.
  2. Supprimer le dossier nommé Android
  3. lancez la commande react-native upgrade

Remarque: Comme ivoteje50 mentionné dans le commentaire, ne supprimez pas le dossier Android si vous avez déjà suivi les instructions officielles pour générer un magasin de clés, car il supprimera le magasin de clés et vous ne pourrez plus signer une nouvelle application.

2
Jose Kj

J'ai une solution basée sur la réponse de @ Cherniv (fonctionne sur macOS pour moi). Deux différences: j'ai un Main2Activity.Java dans le dossier Java auquel je fais la même chose, et je ne me donne pas la peine d'appeler ./gradlew clean car il semble que le conditionneur natif de react-native le fasse automatiquement de toute façon.

Quoi qu'il en soit, ma solution fait ce que fait Cherniv, sauf que j'ai créé un script bash pour celui-ci, car je crée plusieurs applications à l'aide d'un seul ensemble de code et que je veux pouvoir modifier facilement le nom du paquet chaque fois que j'exécute mes scripts npm.

Voici le script bash que j'ai utilisé. Vous aurez besoin de modifier le nom de paquet que vous voulez utiliser et d'ajouter tout ce que vous voulez ... mais voici les bases. Vous pouvez créer un fichier .sh, donner une autorisation, puis l'exécuter à partir du même dossier que celui dans lequel vous avez exécuté react-native:

rm -rf ./Android/app/src/main/Java


mkdir -p ./Android/app/src/main/Java/com/MyWebsite/MyAppName
    packageName="com.MyWebsite.MyAppName"
    sed -i '' -e "s/.*package.*/package "$packageName";/" ./Android/app/src/main/javaFiles/Main2Activity.Java
    sed -i '' -e "s/.*package.*/package "$packageName";/" ./Android/app/src/main/javaFiles/MainActivity.Java
    sed -i '' -e "s/.*package.*/package "$packageName";/" ./Android/app/src/main/javaFiles/MainApplication.Java
    sed -i '' -e "s/.*package=\".*/    package=\""$packageName"\"/" ./Android/app/src/main/AndroidManifest.xml
    sed -i '' -e "s/.*package = '.*/  package = '"$packageName"',/" ./Android/app/BUCK
    sed -i '' -e "s/.*applicationId.*/    applicationId \""$packageName"\"/" ./Android/app/build.gradle

    cp -R ./Android/app/src/main/javaFiles/ ./Android/app/src/main/Java/com/MyWebsite/MyAppName

AVERTISSEMENT: vous devez d'abord modifier le commentaire MainApplication.Java au bas du fichier Java. Il a le mot «package» dans le commentaire. En raison de la manière dont le script fonctionne, il prend n'importe quelle ligne contenant le «package» Word et le remplace. Pour cette raison, il est possible que ce script ne soit pas compatible avec le futur car il est possible que le même mot soit utilisé ailleurs.

Seconde clause de non-responsabilité: les 3 premières commandes sed modifient les fichiers Java à partir d'un répertoire appelé javaFiles. J'ai créé ce répertoire moi-même car je veux avoir un ensemble de fichiers Java qui sont copiés à partir de celui-ci (car je pourrais éventuellement y ajouter de nouveaux packages). Vous voudrez probablement faire la même chose. Copiez donc tous les fichiers du dossier Java (parcourez ses sous-dossiers pour trouver les fichiers Java réels) et placez-les dans un nouveau dossier appelé javaFiles.

Troisième exclusion de responsabilité: vous devrez modifier la variable packageName pour qu'elle corresponde aux chemins situés en haut et en bas du script (com.MyWebsite.MyAppName vers com/MyWebsite/MyAppName).

2
Kjell

vous pouvez simplement utiliser le paquet npm react-native-rename-rename.

Installer avec

npm install react-native-rename -g

Ensuite, à partir de la racine de votre projet React Native, exécutez la commande suivante:

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

react-native-rename on npm

mais remarquez que cette bibliothèque supprime vos MainActivity.Java et MainApplication.Java. avant de changer le nom de votre paquet, effectuez une sauvegarde à partir de ce fichier et, après avoir changé le nom du paquet, remettez-la simplement à sa place. cette solution fonctionne pour moi

plus d'infos: react-native-rename

1
Moein

Allez dans Android Studio, ouvrez l'application, cliquez avec le bouton droit de la souris sur Java et choisissez Nouveau, puis Package.

Donnez le nom que vous voulez (par exemple, com.something).

Déplacez les fichiers de l'autre package (que vous souhaitez renommer) vers le nouveau package. Supprimer l'ancien paquet.

Accédez à votre projet dans votre éditeur et utilisez le raccourci pour rechercher dans tous les fichiers (sur mac, utilisez shift cmd F). Tapez le nom de votre ancien paquet. Remplacez toutes les références par le nouveau nom du package.

Allez sur Android Studio, Construire, Nettoyer le projet, Reconstruire le projet.

Terminé!

Bonne codage :)

0
Fotis Tsakiris

Dans VS Code, appuyez sur Ctrl + Shift + F et entrez le nom de votre ancien paquet dans "Rechercher", puis votre nouveau paquet dans "Remplacer". Puis appuyez sur 'Remplacer toutes les occurrences'.

Certainement pas la manière pragmatique. Mais c'est fait le tour pour moi.

0
Kiran JD