Jak zmienić nazwę pakietu w flutter?

198

Czy istnieje sposób na zmianę nazwy pakietu projektu Flutter?

Chcę zmienić nazwę pakietu i nazwę aplikacji w projekcie flutter.

Abc Xyz
źródło
4
Po prostu wyszukaj i zamień wszystkie wystąpienia starej nazwy pakietu we wszystkich plikach. Nie ma jeszcze polecenia ani podobnego do zaktualizowania nazwy.
Günter Zöchbauer
7
Podczas tworzenia nowego projektu możesz określić nazwę pakietu za pomocąflutter create --org com.domain app_name
Victor,

Odpowiedzi:

334

Nazwa aplikacji na Androida

Zmień nazwę etykiety w AndroidManifest.xmlpliku:

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

Nazwa pakietu

Zmień nazwę pakietu w swoim AndroidManifest.xmlpliku:

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

Również w build.gradlepliku w folderze aplikacji

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

Na koniec zmień pakiet w swojej MainActivity.javaklasie (jeśli plik MainActivity.java nie jest dostępny, sprawdź plik 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 {

Zmień nazwę katalogu:

Z:

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

Do:

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

EDYTOWANO: 27 grudnia 18

do nazwy pakietu wystarczy zmienić w kompilacji build.gradletylko

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

Na iOS

Zmień identyfikator pakietu z Info.plistpliku w ios/Runnerkatalogu.

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

AKTUALIZACJA

Aby uniknąć zmiany nazwy pakietu i identyfikatora pakietu, możesz rozpocząć projekt za pomocą tego polecenia w terminalu:

flutter create --org com.yourdomain appname
diegoveloper
źródło
1
Musiałem również zaktualizować nazwę katalogu poniżej (zmieniając „przykład” na „woods”) C: \ Users \ andytwoods \ IdeaProjects \ gear_log \ android \ app \ src \ main \ java \ com \ woods \ gearlog
andyw
1
A co z iOS?
Suragch
12
Mój identyfikator pakietu to $(PRODUCT_BUNDLE_IDENTIFIER). Gdzie ukrywa się ta zmienna?
Suragch
3
PRODUCT_BUNDLE_IDENTIFIER jest przechowywany w wielu miejscach w pliku project.pbxproj w katalogu ios / Runner.xcodeproj.
Safa Alai
5
Warto wspomnieć, że appID musi mieć format 3 słów oddzielonych kropkami.
Raj Krishnan R
35

Ręczna zmiana nazwy wydaje się nie działać, generuje błędy gradle, w moim przypadku generuje błąd.

Dlatego zazwyczaj tworzę nowy projekt trzepoczący.

Używam poniższego polecenia, aby utworzyć nową aplikację flutter

flutter create --org com.yourdomain appname

Twój projekt będzie miał nazwę pakietu jako -> com.yourdomain.appname


jeśli chcesz tylko zachować nazwę swojego pakietu, a com.appnamenastępnie wprowadź zmiany, jak poniżej

flutter create --org com appname

aby dodać java zamiast kotlinfor androidadd-a java

flutter create -a java --org com.yourdomain appname
Vicky Salunkhe
źródło
i jest też dość szybki
gryfy
4
'flutter create --org com.twojafirma - nazwa-projektu nowa_nazwa_aplikacji.' (dodaj okres, jeśli jesteś w istniejącym projekcie - powinieneś najpierw wyrzucić foldery android i ios, aby je zregenerować). MAKE A BACKUP powinno być ważnym warunkiem udzielenia odpowiedzi.
Tommie C.
możesz stworzyć nowy projekt, a następnie po prostu skopiować zależności pubspec.yaml, uruchomić pub get, a następnie skopiować pliki dart z folderu lib
Filip
28

Dla takich jak ja, którzy nie lubią zmieniać określonych plików, użyłem https://pub.dev/packages/rename .

Instalowanie: pub global activate rename

A potem bieganie: pub global run rename --bundleId com.example.android.app --target android

finx
źródło
26

Android

W systemie Android nazwa pakietu znajduje się w pliku AndroidManifest:

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

iOS

W iOS nazwa pakietu to identyfikator pakietu w Info.plist:

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

który znajduje się w Runner.xcodeproj / project.pbxproj :

PRODUCT_BUNDLE_IDENTIFIER = com.example.appname;

Zmiana nazwy

Nazwa pakietu znajduje się w więcej niż jednej lokalizacji, więc aby zmienić nazwę, należy przeszukać cały projekt pod kątem wystąpień nazwy starego projektu i zmienić je wszystkie.

Android Studio i VS Code:

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

Podziękowania dla diegoveloper za pomoc przy iOS.

Aktualizacja:

Po kilkukrotnym powrocie na tę stronę myślę, że po prostu łatwiej i czyściej jest rozpocząć nowy projekt o właściwej nazwie, a następnie skopiować stare pliki.

Suragch
źródło
Cześć mam pytanie. Może to nie być związane z tematem Flutter, ale jak mogę przekazać projekt o zmienionej nazwie do bieżącego projektu na github, jeśli utworzę nowy projekt?
Ooto
@Ooto, możesz usunąć stary projekt (z wyjątkiem .gitkatalogu w katalogu głównym), a następnie umieścić nowy projekt w tym samym katalogu, co stary. Następnie zatwierdź i prześlij zmiany.
Suragch
20

Zmiana name atrybut w pubspec.yaml (wiersz 1)

Aby uzyskać nazwę apk, zmień android:label wAndroidManifest.xml

Fa Kur
źródło
1
Wymagana jest zmiana w MainActivity.java lub mainActivity.kt
Epsi95
8

W ten sposób zmieniłem nazwę pakietu na iOS i Android

  1. Przejdź do build.gradle w module aplikacji i zmień nazwę applicationId "com.company.name"
  2. Przejdź do pliku Manifest.xml app/src/maini zmień jego nazwępackage="com.company.name" iandroid:label="App Name"
  3. Przejdź do pliku Manifest.xml app/src/debugi zmień jego nazwępackage="com.company.name"
  4. Przejdź do pliku Manifest.xml app/src/profilei zmień jego nazwępackage="com.company.name"
  5. Przejdź do app/src/main/kotlin/com/something/something/MainActivity.kti zmień nazwępackage="com.company.name"
  6. Przejdź do app/src/main/kotlin/każdego katalogu i zmień jego nazwę, aby wyglądała jak strukturaapp/src/main/kotlin/com/company/name/
  7. Idź do pubspec.yamlswojego projektu i zmian name: somethingdo name: name, przykładowo: - jeśli nazwa pakietu jestcom.abc.xyzname: xyz
  8. Przejdź do każdego pliku rzutek w folderze lib i zmień nazwę importu na zmodyfikowaną nazwę.
  9. Otwórz XCode i otwórz plik runner i kliknij Runner w eksploratorze projektów.
  10. Przejdź do Ogólne -> dwukrotnie kliknij Identyfikator pakietu -> zmień jego nazwę na com.company.name
  11. Przejdź do Info.plist i kliknij nazwę pakietu -> zmień nazwę na nazwę aplikacji.
  12. zamknij wszystko -> przejdź do projektu flutter i uruchom to polecenie w terminalu flutter clean
Gagan Raghunath
źródło
6

zmień wszystkie pliki AndroidManifest.xml projektu Flutter, -> package = "your.name.app " (app / src / debug / AndroidManifest.xml ) i (app / src / main / AndroidManifest.xml ) i (app / src / profile / AndroidManifest.xml )

dobry wygląd !!

Percy Rojas
źródło
Dzięki Percy. Miałem ten problem. Znalazłem twoją odpowiedź.
Deweloper
6

Zgodnie z oficjalną dokumentacją fluttera wystarczy zmienić katalog ApplicationIdin app/build.gradle. Następnie musisz po prostu zbudować swój apk, a nazwa pakietu pliku manifestu zostanie zmieniona zgodnie ze ApplicationIdzmianą w build.gradle. Z powodu trzepotania podczas budowania apk i Google Play oba rozważają ApplicationIdz build.gradle. To rozwiązanie zadziałało dla mnie.

źródło: Official Documentation

yash
źródło
5

W kodzie programu Visual Studio

Edycja> Zamień w plikach

vs zastępowanie kodu w plikach

W studiu Android

1. Kliknij prawym przyciskiem myszy projekt> Zastąp w ścieżce

wymienić na ścieżce

2. Wpisz stary pakiet i nowy pakiet> Zastąp wszystko

zamień cały zrzut ekranu

shb
źródło
3

Zaktualizowano Musisz zmienić nazwę pakietu na żądaną nazwę pakietu w tych pięciu lokalizacjach.

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"

ostatnim krokiem jest bieganie flutter clean

Atul Chaudhary
źródło
1

Miałem dwa pliki manifest.xml w sekcji mojej aplikacji, więc musiałem zmienić nazwę pakietu w obuTutaj możesz zobaczyć

Progga Ilma
źródło
0

Możesz śledzić tę oficjalną dokumentację Google: https://developer.android.com/studio/build/application-id.html

Identyfikator aplikacji należy zmienić w Build.gradle, natomiast nazwę pakietu można zmienić w AndroidManifest.xml.

Należy jednak uważać przy zmianie nazwy pakietu.

Również podczas ponownego przesyłania aplikacji należy zachować ostrożność, ponieważ jest ona zgodna z identyfikatorem aplikacji poprzednio przesłanej aplikacji przy nowym przesłaniu.

Abhijeet Singh
źródło
0

W systemie Android zmień identyfikator aplikacji w

> build.gradle

plik i zmiana iOS

> nazwa pakietu z ustawień projektu.

Gurwinder Singh
źródło
0

Nawet jeśli moja odpowiedź nie zostanie zaakceptowana jako poprawna, po prostu czuję, że wszystkie powyższe odpowiedzi spowodowały, że mam więcej problemów, oto jak to naprawiłem

  1. Uzyskaj wysublimowany tekst (szalony, prawda? Nie, po prostu wykonaj moje kroki)
  2. Kliknij plik i wybierz otwarty folder, a następnie wybierz folder projektu, nad którym pracujesz
  3. Teraz kliknij Znajdź w zakładkach i wybierz znajdź w plikach lub po prostu zrób Ctrl+ Shift+F (dla użytkowników Windows, dla użytkowników Mac, którzy już znasz wiertło)
  4. Teraz skopiuj i wklej dokładnie nazwę pakietu, który chcesz zmienić w sekcji Znajdź i wklej w sekcji zamiany tym, czym chcesz zastąpić nazwę pakietu.
  5. Kliknij ZNAJDŹ (jeszcze nie klikaj WYMIEŃ).
  6. Teraz kliknięcie przycisku Znajdź powoduje wyświetlenie wszystkich dostępnych nazw pakietów w Twoim projekcie, które spełniają kryteria wyszukiwania. Jeśli jesteś z tego zadowolony, powtórz od nr. 3, ale tym razem kliknij WYMIEŃ.
  7. Przebuduj swój projekt i baw się dobrze

Wniosek: prosty program do znajdowania i zamieniania to wszystko, czego potrzebujesz, aby rozwiązać ten problem, i zdecydowanie polecam do tego Sublime Text 3.

Amos Mensah Kyei
źródło
1
Wymagane jest również zaktualizowanie ścieżki pliku, jak zasugerował @diegoveloper w swojej odpowiedzi. Szukając, nie możemy przeszukać ścieżki.
Rahmat Ali
0

Po wypróbowaniu wszystkich powyższych. Prosta praca dla mnie, aby zmienić nazwę pakietu flutter w Android Studio :

Krok 1:

Prochowiec: Command + Shift + R

Linux / Windows: Ctrl + Shift + R

Po zmianie na nowy pakiet i naciśnij Replace Alli poczekaj na zakończenie uruchomienia Android Studio .

flutter rename package w Android Studio

Krok 2:

Następnie przejdź do AndroidManifest.xml:

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

i skopiuj package namei wykonaj ten sam krok 1, aby zmienić nazwę packagew AndroidManifesti build.gradle.

Na koniec zmień pakiet w klasie MainActivity.java (jeśli plik MainActivity.java nie jest dostępny, sprawdź plik 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 {

Zmień nazwę katalogu. Szczegółowe informacje można znaleźć w poniższy link to :

Z:

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

Do:

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

Doan Bui
źródło