webentwicklung-frage-antwort-db.com.de

Ändern Sie den Paketnamen für Android in React Native

Ich habe react-native init MyApp verwendet, um eine neue React Native-App zu initialisieren . Diese erstellte unter anderem ein Android-Projekt mit dem Paket com.myapp.

Wie kann ich diesen Paketnamen am besten ändern, beispielsweise in: com.mycompany.myapp?

Ich habe versucht, es in AndroidManifest.xml zu ändern, aber es wurden andere Fehler erzeugt. Ich gehe davon aus, dass dies nicht der Fall ist.

Irgendeine Idee?

99
mllm

Ich habe den Unterordner-Namen des Projekts von "Android/app/src/main/Java/MY/APP / OLD_ID /" in: "Android/app/src/main/Java geändert/MY/APP / NEW_ID / "

Dann haben Sie die alten und neuen Paket-IDs manuell gewechselt:

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

package MY.APP.NEW_ID;

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

package MY.APP.NEW_ID;

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

package="MY.APP.NEW_ID"

Und in Android/app/build.gradle:

applicationId "MY.APP.NEW_ID"

(Optional) In Android/app/BUCK:

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

Gradle 'Reinigung am Ende (in / Android Ordner):

./gradlew clean
223
Cherniv

Ich verwende das rease-native-rename npm-Paket.

Installieren Sie mit

npm install react-native-rename -g

Führen Sie dann im Stammverzeichnis Ihres React Native-Projekts Folgendes aus

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

reag-native umbenennen auf npm

56
Javid Al Karuzi

So ändern Sie den Paketnamen von com.myapp in: com.mycompany.myapp (zum Beispiel) 

  1. Verwenden Sie für die iOS-App der Reakt-App xcode - unter general.
  2. Öffnen Sie für die Android-App das build.gradle auf Modulebene. Die im Android/App-Ordner. Du wirst finden 

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

Ändern Sie die "com.myapp" in das, was Sie benötigen.

Hoffe das hilft. 

6
Olusola Omosola

Das Init-Skript generiert eine eindeutige Kennung für Android, die auf dem von Ihnen angegebenen Namen basiert (z. B. com.acmeapp für AcmeApp).

Sie können sehen, welcher Name generiert wurde, indem Sie in Android/app/build.gradle nach dem Schlüssel applicationId suchen.

Wenn Sie diesen eindeutigen Bezeichner ändern müssen, führen Sie ihn wie folgt aus:

Ersetzen Sie im Ordner /Android alle Vorkommen von com.acmeapp durch com.acme.app.

Ändern Sie dann die Verzeichnisstruktur mit den folgenden Befehlen:

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

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

Für jeden Punkt in der App-Kennung benötigen Sie eine Ordnerebene.

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

4
Atul Yadav

Gehe zu Android Studio

Klicken Sie mit der rechten Maustaste auf Ihr Paket (wahrscheinlich com) -> Refraktor -> Umbenennen -> Geben Sie im Dialogfeld einen neuen Paketnamen ein -> Do Refraktor

Es wird Ihren Paketnamen überall umbenennen.

4
Aishwarya

Wenn Sie Android Studio verwenden,

com.myapp in com.mycompany.myapp ändern

  1. erstellen Sie eine neue Pakethierarchie com.mycompany.myapp unter Android/app/src/main/Java.

  2. Kopieren Sie alle Klassen von com.myapp nach com.mycompany.myapp mit der Android Studio-GUI

  3. Android Studio kümmert sich darum, für alle kopierten Klassen einen geeigneten Paketnamen anzugeben. Dies ist nützlich, wenn Sie über einige benutzerdefinierte Module verfügen und nicht in allen .Java-Dateien manuell ersetzen möchten.

  4. Android/app/src/main/AndroidManifest.xml und Android/app/build.gradle aktualisieren (com.myapp durch com.mycompany.myapp ersetzen)

  5. Synchronisieren Sie das Projekt (gradle build)

3
Varun Kumar

Befolgen Sie die einfachen Schritte, um Ihren app name und Package name umzubenennen

  1. Ändern Sie einfach die name in der package.json -Datei nach Bedarf und speichern Sie sie.
  2. Entfernen Sie den Ordner mit dem Namen Android
  3. führen Sie den Befehl react-native upgrade aus.

Hinweis: Wie ivoteje50 im Kommentar erwähnt, entfernen Sie den Android-Ordner nicht, wenn Sie bereits den offiziellen Anweisungen zum Generieren eines Keystores gefolgt sind, da dadurch der Keystore entfernt wird und Sie keine neue App erneut signieren können.

2
Jose Kj

Ich habe eine Lösung basierend auf der Antwort von @ Cherniv (funktioniert für mich unter macOS). Zwei Unterschiede: Ich habe ein Main2Activity.Java im Java-Ordner, mit dem ich dasselbe mache, und ich mache mir nicht die Mühe, ./gradlew clean aufzurufen, da es so aussieht, als würde der reaktions-native Packager das sowieso automatisch tun.

Wie auch immer, meine Lösung macht das, was Cherniv tut, außer dass ich ein bash-Shell-Skript dafür erstellt habe, da ich mehrere Apps mit einem Satz von Code baue und den Paketnamen bei jeder Ausführung meiner npm-Skripts problemlos ändern kann.

Hier ist das Bash-Skript, das ich verwendet habe. Sie müssen den Paketnamen ändern, den Sie verwenden möchten, und alles hinzufügen, was Sie möchten. Hier sind jedoch die Grundlagen. Sie können eine .sh-Datei erstellen, die Berechtigung erteilen und sie dann in demselben Ordner ausführen, in dem Sie Reacti-Native ausführen:

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

HAFTUNGSAUSSCHLUSS: Sie müssen zuerst den Kommentar von MainApplication.Java am unteren Rand der Java-Datei bearbeiten. Es hat das Wort "Paket" im Kommentar. Aufgrund der Funktionsweise des Skripts nimmt es eine beliebige Zeile mit dem Word-Paket und ersetzt es. Aus diesem Grund ist dieses Skript möglicherweise nicht zukunftssicher, da möglicherweise dasselbe Word an anderer Stelle verwendet wird.

Zweiter Haftungsausschluss: Die ersten 3 sed-Befehle bearbeiten die Java-Dateien aus einem Verzeichnis namens javaFiles. Ich habe dieses Verzeichnis selbst erstellt, da ich einen Satz von Java-Dateien haben möchte, die von dort kopiert werden (da ich möglicherweise in Zukunft neue Pakete hinzufüge). Sie möchten wahrscheinlich dasselbe tun. Kopieren Sie also alle Dateien aus dem Java-Ordner (suchen Sie die eigentlichen Java-Dateien durch ihre Unterordner) und legen Sie sie in einem neuen Ordner mit dem Namen javaFiles ab.

Dritter Haftungsausschluss: Sie müssen die packageName -Variable so bearbeiten, dass sie mit den Pfaden oben und unten im Skript übereinstimmt (com.MyWebsite.MyAppName bis com/MyWebsite/MyAppName).

2
Kjell

sie können einfach das React-native-Rename-Paket npm verwenden.

Installieren Sie mit

npm install react-native-rename -g

Führen Sie dann im Stammverzeichnis Ihres React Native-Projekts Folgendes aus

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

react-native-rename on npm

beachten Sie jedoch, dass diese Bibliothek Ihren MainActivity.Java und MainApplication.Java. entfernt, bevor Sie den Paketnamen ändern. Geben Sie eine Sicherungskopie dieser beiden Dateien an und setzen Sie den Paketnamen nach dem Ändern wieder an seinen Platz. Diese Lösung funktioniert für mich

weitere Informationen: React-native-umbenennen

1
Moein

Gehen Sie zu Android Studio, öffnen Sie die App, klicken Sie mit der rechten Maustaste auf Java und wählen Sie Neu und dann Paket.

Geben Sie den gewünschten Namen ein (z. B. com.something).

Verschieben Sie die Dateien aus dem anderen Paket (das Sie umbenennen möchten) in das neue Paket. Löschen Sie das alte Paket.

Gehen Sie in Ihrem Editor zu Ihrem Projekt und verwenden Sie die Verknüpfung zum Suchen in allen Dateien (auf einem Mac ist Shift cmd F). Geben Sie den Namen Ihres alten Pakets ein. Ändern Sie alle Verweise auf den neuen Paketnamen.

Gehen Sie zu Android Studio, Build, Clean Project, Rebuild Project.

Erledigt!

Fröhliches Codieren :)

0
Fotis Tsakiris

Drücken Sie im VS-Code Ctrl + Shift + F und geben Sie Ihren alten Paketnamen unter "Suchen" und Ihr neues Paket unter "Ersetzen" ein. Drücken Sie dann auf "Alle Vorkommen ersetzen".

Auf keinen Fall der pragmatische Weg. Aber es ist der Trick für mich getan.

0
Kiran JD