Wie ändere ich den Paketnamen im Flattern?


153

Gibt es eine Möglichkeit, den Paketnamen des Flutter-Projekts zu ändern?

Ich möchte den Paketnamen und den Anwendungsnamen im Flatterprojekt ändern.


4
Suchen und ersetzen Sie einfach alle Vorkommen des alten Paketnamens in allen Dateien. Es gibt noch keinen Befehl oder ähnliches, um den Namen zu aktualisieren.
Günter Zöchbauer

3
Wenn Sie ein neues Projekt erstellen, können Sie den Paketnamen mitflutter create --org com.domain app_name
Victor

Antworten:


279

Für Android App Name

Ändern Sie den Labelnamen in Ihrer AndroidManifest.xmlDatei:

 <application
    android:name="io.flutter.app.FlutterApplication"
    android:label="TheNameOfYourApp"   

Für Paketnamen

Ändern Sie den Paketnamen in Ihrer AndroidManifest.xmlDatei:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="your.package.name">

Auch in Ihrer build.gradleDatei im App-Ordner

defaultConfig {
    applicationId "your.package.name"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

Ändern Sie MainActivity.javaabschließend das Paket in Ihrer Klasse (wenn MainActivity.java nicht verfügbar ist, überprüfen Sie MainActivity.kt).

    package your.package.name;

    import android.os.Bundle;
    import io.flutter.app.FlutterActivity;
    import io.flutter.plugins.GeneratedPluginRegistrant;
    public class MainActivity extends FlutterActivity {

Ändern Sie den Verzeichnisnamen:

Von:

  android\app\src\main\java\com\example\name

Zu:

  android\app\src\main\java\your\package\name

EDITIERT: 27-Dec-18

Für den Paketnamen ändern Sie einfach build.gradlenur den Build

defaultConfig {
    applicationId "your.package.name"
    minSdkVersion 16
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}

Für iOS

Ändern Sie die Bundle-ID aus Ihrer Info.plistDatei in Ihrem ios/RunnerVerzeichnis.

<key>CFBundleIdentifier</key>
<string>com.your.packagename</string>

AKTUALISIEREN

Um zu vermeiden, dass die Paket- und Bundle-ID umbenannt wird, können Sie Ihr Projekt mit diesem Befehl in Ihrem Terminal starten:

flutter create --org com.yourdomain appname

1
Ich hatte die Verzeichnisnamen unter aktualisieren C ( 'Beispiel' zu 'Wald' zu ändern): \ Users \ andytwoods \ IdeaProjects \ gear_log \ android \ app \ src \ main \ java \ com \ Wald \ gearlog
andyw

1
Wie wäre es mit iOS?
Suragch

8
Meine Bundle-ID lautet $(PRODUCT_BUNDLE_IDENTIFIER). Wo versteckt sich diese Variable?
Suragch

3
PRODUCT_BUNDLE_IDENTIFIER wird an mehreren Stellen in der Datei project.pbxproj im Verzeichnis ios / Runner.xcodeproj gespeichert.
Safa Alai

3
Erwähnenswert ist, dass die AppID das Format von 3 durch Punkte getrennten Wörtern haben muss.
Raj Krishnan R

23

Das manuelle Ändern des Namens scheint nicht zu funktionieren, wirft Gradle-Fehler aus, in meinem Fall wirft es Fehler.

Also erstelle ich normalerweise ein neues Flatterprojekt.

Ich benutze den unten genannten Befehl, um eine neue Flatter-App zu erstellen

flutter create --org com.yourdomain appname

Ihr Projekt hat den Paketnamen -> com.yourdomain.appname


Wenn Sie nur Ihren Paketnamen beibehalten möchten, nehmen Sie com.appnamedie folgenden Änderungen vor

flutter create --org com appname

hinzuzufügen Java statt kotlinfür androidadd-a java

flutter create -a java --org com.yourdomain appname

und es ist auch ziemlich schnell
Greife

2
'flattern create --org com.yourcompany --project-name new_app_name.' (Fügen Sie den Zeitraum hinzu, wenn Sie sich im vorhandenen Projekt befinden. Sie sollten zuerst die Ordner android und ios in den Papierkorb werfen, damit sie neu generiert werden.) Ein Backup sollte eine wichtige Voraussetzung für die Antwort sein.
Tommie C.

20

Android

In Android befindet sich der Paketname im AndroidManifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    ...
    package="com.example.appname">

iOS

Unter iOS ist der Paketname die Bundle-ID in Info.plist:

<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>

welches in Runner.xcodeproj / project.pbxproj gefunden wird :

PRODUCT_BUNDLE_IDENTIFIER = com.example.appname;

Den Namen ändern

Der Paketname befindet sich an mehreren Stellen. Um den Namen zu ändern, sollten Sie das gesamte Projekt nach Vorkommen Ihres alten Projektnamens durchsuchen und alle ändern.

Android Studio und VS Code:

  • Mac: Command+ Shift+F
  • Linux / Windows: Ctrl+ Shift+F

Vielen Dank an diegoveloper für die Hilfe bei iOS.

Aktualisieren:

Nachdem ich einige Male auf diese Seite zurückgekommen bin, denke ich, dass es einfacher und sauberer ist, ein neues Projekt mit dem richtigen Namen zu starten und dann die alten Dateien zu kopieren.


19

nameAttribut ändern in pubspec.yaml (Zeile 1)

Ändern Sie für den Namen von apk android:label inAndroidManifest.xml


1
Eine Änderung von MainActivity.java oder mainActivity.kt ist erforderlich
Epsi95

18

Für diejenigen wie mich, die bestimmte Dateien nicht ändern möchten, habe ich https://pub.dev/packages/rename verwendet .

Installation: pub global activate rename

Und dann läuft: pub global run rename --bundleId com.example.android.app --target android


6

Ändern Sie in allen AndroidManifest.xml- Dateien Ihres Flutter-Projekts -> package = "your.name.app " (app / src / debug / AndroidManifest.xml ) und (app / src / main / AndroidManifest.xml ) und (app / src / profile / AndroidManifest.xml )

gut aussehen !!


Danke Percy, ich hatte dieses Problem. Ich habe deine Antwort gefunden.
Entwickler

6

So habe ich das Paket für iOS und Android umbenannt

  1. Gehen Sie im App-Modul zu build.gradle und benennen Sie es um applicationId "com.company.name"
  2. Gehen Sie zu Manifest.xml in app/src/mainund benennen Sie package="com.company.name"und umandroid:label="App Name"
  3. Gehen Sie zu Manifest.xml in app/src/debugund benennen Sie umpackage="com.company.name"
  4. Gehen Sie zu Manifest.xml in app/src/profileund benennen Sie umpackage="com.company.name"
  5. Gehe zu app/src/main/kotlin/com/something/something/MainActivity.ktund benenne umpackage="com.company.name"
  6. Gehen Sie zu app/src/main/kotlin/jedem Verzeichnis und benennen Sie es um, damit die Struktur so aussiehtapp/src/main/kotlin/com/company/name/
  7. Zur pubspec.yamlin Ihrem Projekt und ändern name: somethingzu name: name, Beispiel: - wenn Paketname ist com.abc.xyzdiename: xyz
  8. Gehen Sie zu jeder Dartdatei im Ordner lib und benennen Sie die Importe in den geänderten Namen um.
  9. Öffnen Sie XCode, öffnen Sie die Runner-Datei und klicken Sie im Projektexplorer auf Runner.
  10. Gehen Sie zu Allgemein -> Doppelklicken Sie auf Bundle Identifier -> benennen Sie es um com.company.name
  11. Gehen Sie zu Info.plist und klicken Sie auf Bundle-Name -> benennen Sie ihn in Ihren App-Namen um.
  12. Alles schließen -> Gehen Sie zu Ihrem Flatterprojekt und führen Sie diesen Befehl im Terminal aus flutter clean

3

Aktualisiert Sie müssen den Paketnamen an diesen fünf Speicherorten in den gewünschten Paketnamen ändern.

1.) src/profile/AndroidManifest.xml
2.) src/debug/AndroidManifest.xml
3.) src/main/AdroidManifest.xml
4.) build.gradle .
       defaultConfig {
           applicationId
5.) MainActivity.java on "package"

Der letzte Schritt ist zu laufen flutter clean


3

Auf Visual Studio-Code

Bearbeiten> In Dateien ersetzen

vs Code in Dateien ersetzen

Auf Android Studio

1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt> Im Pfad ersetzen

im Pfad ersetzen

2. Schreiben Sie Ihr altes und neues Paket> Ersetzen Sie alle

Ersetzen Sie alle Screenshots


omg, du bist einfach der Beste
N Sivaram

3

Laut der offiziellen Flatterdokumentation müssen Sie nur das ApplicationIdIn- app/build.gradleVerzeichnis ändern . Dann müssen Sie nur noch Ihre apk erstellen und der Paketname der Manifestdatei wird entsprechend der von ApplicationIdIhnen geänderten geändert build.gradle. Wegen des Flatterns beim ApplicationIdErstellen einer Apk und von Google Play berücksichtigen beide von build.gradle. Diese Lösung hat bei mir funktioniert.

Quelle: Offizielle Dokumentation


1

Ich hatte zwei manifest.xml-Dateien in meinem App-Bereich, daher musste ich den Paketnamen in beiden ändernHier sieht man


0

Sie können dieser offiziellen Dokumentation von Google folgen: https://developer.android.com/studio/build/application-id.html

Die Anwendungs-ID sollte in Build.gradle geändert werden, während der Paketname in AndroidManifest.xml geändert werden kann.

Man sollte jedoch vorsichtig sein, den Paketnamen zu ändern.

Auch beim erneuten Hochladen der App sollte man vorsichtig sein, da sie mit der Anwendungs-ID der zuvor hochgeladenen App mit dem neuen Upload übereinstimmt.


0

Ändern Sie in Android die Anwendungs-ID in

> build.gradle

Datei und iOS ändern sich

> Bundle-Name aus den Projekteinstellungen.


0

Selbst wenn meine Antwort nicht als die richtige Antwort akzeptiert wird, habe ich das Gefühl, dass all diese Antworten oben zu weiteren Problemen geführt haben. So habe ich sie behoben

  1. Holen Sie sich erhabenen Text (verrückt, richtig? Nein, folgen Sie einfach meinen Schritten)
  2. Klicken Sie auf Datei und wählen Sie Ordner öffnen. Wählen Sie dann den Ordner des Projekts aus, an dem Sie arbeiten
  3. Klicken Sie nun auf den Registerkarten auf Suchen und wählen Sie In Dateien suchen oder einfach Ctrl+ Shift+ F (für Windows-Benutzer, für Mac-Benutzer kennen Sie den Drill bereits).
  4. Kopieren Sie nun genau den Namen des Pakets, das Sie ändern möchten, und fügen Sie ihn in den Abschnitt Suchen ein. Fügen Sie im Abschnitt Ersetzen den Namen ein, durch den Sie den Paketnamen ersetzen möchten.
  5. Klicken Sie auf FIND (klicken Sie noch nicht auf REPLACE).
  6. Wenn Sie nun auf Suchen klicken, werden alle verfügbaren Paketnamen in Ihrem Projekt aufgelistet, die Ihren Suchkriterien entsprechen. Wenn Sie damit zufrieden sind, wiederholen Sie den Vorgang ab Nr. 3 aber diesmal klicken Sie auf ERSETZEN.
  7. Erstellen Sie Ihr Projekt neu und haben Sie Spaß

Fazit: Ein einfaches Programm zum Suchen und Ersetzen ist alles, was Sie brauchen, um dieses Problem zu lösen, und ich empfehle Sublime Text 3 dringend.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.