Ich habe react-native init MyApp
eine neue React Native-App initialisiert. Dies schuf unter anderem ein Android-Projekt mit dem Paket com.myapp
.
Wie kann dieser Paketname am besten geändert werden, z. B. in : com.mycompany.myapp
?
Ich habe versucht, es zu ändern, AndroidManifest.xml
aber es hat andere Fehler verursacht, also gehe ich davon aus, dass es nicht so ist.
Irgendeine Idee?
Antworten:
Ich habe den Unterordner des Projekts von " android / app / src / main / java / MY / APP / OLD_ID / " in " android / app / src / main / java / MY / APP / NEW_ID / " umbenannt.
Dann manuell die alten und neuen Paket-IDs umgeschaltet:
In: android / app / src / main / java / MY / APP / NEW_ID / MainActivity.java :
In android / app / src / main / java / MY / APP / NEW_ID / MainApplication.java :
In android / app / src / main / AndroidManifest.xml :
Und in android / app / build.gradle :
( Optional ) In Android / App / BUCK :
Gradle 'Reinigung am Ende (im Ordner / android ):
quelle
android/app/src/main/java/com/old_app_name/
auf ,...com/new_app_name/
und es scheint zu funktionieren.Ich verwende das Paket react-native-rename * npm. Installieren Sie es über
Führen Sie dann im Stammverzeichnis Ihres React Native-Projekts Folgendes aus:
quelle
So ändern Sie den Paketnamen von
com.myapp
:com.mycompany.myapp
(zum Beispiel)android/app
Ordner. Du wirst findenÄndern Sie das
com.myapp
zu was auch immer Sie brauchen.Hoffe das hilft.
quelle
./gradlew clean
und dann./gradlew app:assembleRelease
.applicationId
und der lokalepackage
Name sind jedoch unabhängig voneinander", "applicationId
identifiziert Ihre App auf dem Gerät und im Google Play Store eindeutig" - developer.android.com/studio/build/application-idNo matching client found for package name 'xxxxx'
Sie können einfach das npm-Paket "react-native-rename" 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
aber beachte, dass diese lib dein
MainActivity.java
und entferntMainApplication.java
. Geben Sie vor dem Ändern Ihres Paketnamens eine Sicherungskopie dieser beiden Dateien und legen Sie sie nach dem Ändern des Paketnamens wieder an ihrem Platz ab. Diese Lösung funktioniert für michWeitere Infos: React-Native-Rename
quelle
Gehe zu Android Studio
Klicken Sie mit der rechten Maustaste auf Ihr Paket (höchstwahrscheinlich com) -> Refraktor -> Umbenennen -> Geben Sie im Dialogfeld einen neuen Paketnamen ein -> Refraktor ausführen
Ihr Paketname wird überall umbenannt.
quelle
Das Init-Skript generiert eine eindeutige Kennung für Android basierend auf dem Namen, den Sie ihm gegeben haben (z . B.
com.acmeapp
fürAcmeApp
).Sie können sehen, welcher Name generiert wurde, indem Sie nach dem Anwendungs-ID-Schlüssel suchen
android/app/build.gradle
.Wenn Sie diese eindeutige Kennung ändern müssen, gehen Sie jetzt wie folgt vor:
/android
Ersetzen Sie im Ordner alle Vorkommen voncom.acmeapp
durchcom.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
Sie benötigen eine Ordnerebene für jeden Punkt in der App-ID.
Quelle: https://blog.elao.com/de/dev/from-react-native-init-to-app-stores-real-quick/
quelle
Wenn Sie Android Studio-
wechseln
com.myapp
zucom.mycompany.myapp
Erstellen Sie eine neue Pakethierarchie unter com.mycompany.myapp unter
android/app/src/main/java
Kopieren Sie alle Klassen aus ,
com.myapp
umcom.mycompany.myapp
mit Android Studio GUIAndroid Studio sorgt dafür, dass für alle kopierten Klassen ein geeigneter Paketname angegeben wird. Dies ist nützlich, wenn Sie über einige benutzerdefinierte Module verfügen und nicht alle Java-Dateien manuell ersetzen möchten.
Aktualisieren
android/app/src/main/AndroidManifest.xml
undandroid/app/build.gradle
(ersetzencom.myapp
durchcom.mycompany.myapp
Synchronisiere das Projekt (Gradle Build)
quelle
Ich habe eine Lösung, die auf der Antwort von @ Cherniv basiert (funktioniert für mich unter macOS). Zwei Unterschiede: Ich habe eine Main2Activity.java im Java-Ordner, mit der ich dasselbe mache, und ich rufe ./gradlew clean nicht auf, da es so aussieht, als würde der reaktionsnative Packager dies sowieso automatisch tun.
Wie auch immer, meine Lösung macht das, was Cherniv macht, außer dass ich ein Bash-Shell-Skript dafür erstellt habe, da ich mehrere Apps mit einem Satz Code erstelle und den Paketnamen einfach ändern möchte, wenn ich meine npm-Skripte ausführe.
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 ... aber hier sind die Grundlagen. Sie können eine .sh-Datei erstellen, die Berechtigung erteilen und sie dann in demselben Ordner ausführen, in dem Sie react-native ausführen:
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 wird eine beliebige Zeile mit dem Wort "Paket" verwendet und ersetzt. Aus diesem Grund ist dieses Skript möglicherweise nicht zukunftssicher, da möglicherweise dasselbe Wort an anderer Stelle verwendet wird.
Zweiter Haftungsausschluss: Die ersten drei 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ügen werde). Sie werden wahrscheinlich das Gleiche tun wollen. Kopieren Sie also alle Dateien aus dem Java-Ordner (durchsuchen Sie die Unterordner, um die tatsächlichen Java-Dateien zu finden) und legen Sie sie in einem neuen Ordner namens javaFiles ab.
Dritter Haftungsausschluss: Sie müssen die Variable packageName so bearbeiten, dass sie mit den Pfaden oben und unten im Skript übereinstimmt (com.MyWebsite.MyAppName to com / MyWebsite / MyAppName).
quelle
Drücken Sie
Ctrl + Shift + F
in VS Code und geben Sie Ihren alten Paketnamen in "Suchen" und Ihr neues Paket in "Ersetzen" ein. Drücken Sie dann 'Alle Vorkommen ersetzen'.Auf keinen Fall pragmatisch. Aber es ist der Trick für mich getan.
quelle
Verwenden
npx react-native-rename <newName>
Mit benutzerdefiniertem Bundle Identifier (nur Android. Für iOS verwenden Sie bitte Xcode)
Wechseln Sie zunächst zu einem neuen Zweig (optional, aber empfohlen).
Benennen Sie dann Ihre App um. $ Npx react-native-rename "Travel App"
Mit benutzerdefiniertem Bundle Identifier
Nachdem Sie den Namen geändert haben, stellen Sie bitte sicher, dass Sie zum Android-Ordner gehen und ausführen
gradlew clean
. Gehen Sie dann zurück zum Hauptprojekt und führen Sie es ausnpx react-native run-android
.Auch wenn Sie in Ihrem vorherigen Projekt die Datei google-services.json haben, ändern Sie sie entsprechend mit der neuen ... dann können Sie loslegen :)
Weitere Informationen finden Sie hier https://github.com/junedomingo/react-native-rename#readme
quelle
Befolgen Sie die einfachen Schritte, um Ihren Ordner umzubenennen
app name
undPackage name
falls Sie keine benutzerdefinierten Änderungen im Android-Ordner vorgenommen haben (dh Szenario, in dem Sie gerade das Projekt initialisiert haben).name
diepackage.json
Datei nach Bedarf und speichern Sie sie.react-native upgrade
Hinweis: Da ivoteje50 in Kommentar erwähnt nicht die Android - Ordner entfernen , wenn Sie bereits die offiziellen Anweisungen befolgt haben einen Schlüsselspeicher zu erzeugen, da sie den Schlüsselspeicher entfernen und Sie können nicht eine neue App erneut anmelden.
quelle
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 an (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 dem 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, Erstellen, Projekt bereinigen, Projekt neu erstellen.
Getan!
Viel Spaß beim Codieren :)
quelle
Ich habe das React-Native-Rename- Paket verwendet.
Führen Sie im Terminal den folgenden Befehl aus:
Führen Sie im Stammverzeichnis Ihres React Native-Projekts den folgenden Befehl aus:
quelle
Sie können ein React-Native-Rename-Paket verwenden, das alle erforderlichen Änderungen des Paketnamens unter übernimmt
app / mainapplication.java
AndroidManifest.xml
Stellen Sie jedoch sicher, dass Sie den Paketnamen aller Dateien im Ordner java / com manuell ändern. denn als ich eine Begrüßungsbildschirmaktivität erstellt habe, wird der alte Paketname nicht aktualisiert.
https://www.npmjs.com/package/react-native-rename
quelle
Einfach das Such- und Ersetzungswerkzeug meiner IDE zu verwenden, hat den Trick getan.
quelle
Nach dem Ausführen dieses:
Stellen Sie sicher, dass Sie auch
Build.gradle
unter gehenandroid/app/...
und die Anwendungs-ID wie unten gezeigt umbenennen:quelle
Gehen Sie zur Datei android / app / src / main / AndroidManifest.xml -
Update:
attr android: label of Element Anwendung als:
und
attr android: label of Element Aktivität als:
Hat für mich gearbeitet, hoffentlich hilft es.
quelle