Gibt es eine Möglichkeit, den Paketnamen des Flutter-Projekts zu ändern?
Ich möchte den Paketnamen und den Anwendungsnamen im Flatterprojekt ändern.
flutter create --org com.domain app_name
Gibt es eine Möglichkeit, den Paketnamen des Flutter-Projekts zu ändern?
Ich möchte den Paketnamen und den Anwendungsnamen im Flatterprojekt ändern.
flutter create --org com.domain app_name
Antworten:
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
$(PRODUCT_BUNDLE_IDENTIFIER). Wo versteckt sich diese Variable?
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
In Android befindet sich der Paketname im AndroidManifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
package="com.example.appname">
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;
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:
Vielen Dank an diegoveloper für die Hilfe bei iOS.
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.
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
Ä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 !!
So habe ich das Paket für iOS und Android umbenannt
applicationId "com.company.name"app/src/mainund benennen Sie package="com.company.name"und umandroid:label="App Name"app/src/debugund benennen Sie umpackage="com.company.name"app/src/profileund benennen Sie umpackage="com.company.name"app/src/main/kotlin/com/something/something/MainActivity.ktund benenne umpackage="com.company.name"app/src/main/kotlin/jedem Verzeichnis und benennen Sie es um, damit die Struktur so aussiehtapp/src/main/kotlin/com/company/name/pubspec.yamlin Ihrem Projekt und ändern name: somethingzu name: name, Beispiel: - wenn Paketname ist com.abc.xyzdiename: xyzcom.company.nameflutter cleanAktualisiert 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
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
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.
Ändern Sie in Android die Anwendungs-ID in
> build.gradle
Datei und iOS ändern sich
> Bundle-Name aus den Projekteinstellungen.
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
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.