Come cambiare il nome del pacchetto in flutter?


157

C'è un modo per cambiare il nome del pacchetto del progetto Flutter?

Voglio cambiare il nome del pacchetto e il nome dell'applicazione nel progetto Flutter.


4
Cerca e sostituisci tutte le occorrenze del vecchio nome del pacchetto in tutti i file. Non esiste ancora un comando o simile per aggiornare il nome.
Günter Zöchbauer,

3
Quando si crea un nuovo progetto, è possibile specificare il nome del pacchetto conflutter create --org com.domain app_name
Victor

Risposte:


285

Per nome app Android

Cambia il nome dell'etichetta nel tuo AndroidManifest.xmlfile:

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

Per il nome del pacchetto

Cambia il nome del pacchetto nel tuo AndroidManifest.xmlfile:

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

Anche nel tuo build.gradlefile all'interno della cartella dell'app

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

Infine, modifica il pacchetto nella tua MainActivity.javaclasse (se MainActivity.java non è disponibile, controlla 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 {

Cambia il nome della directory:

A partire dal:

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

Per:

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

MODIFICATO: 27-dic-18

per nome del pacchetto basta cambiare in costruzione build.gradlesolo

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

Per iOS

Cambia l'identificatore del bundle dal tuo Info.plistfile all'interno della tua ios/Runnerdirectory.

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

AGGIORNARE

Per evitare di rinominare il pacchetto e l'identificatore del bundle, puoi avviare il tuo progetto usando questo comando nel tuo terminale:

flutter create --org com.yourdomain appname

1
Ho dovuto aggiornare anche il nome della directory di seguito (cambiando "esempio" in "boschi") C: \ Users \ andytwoods \ IdeaProjects \ gear_log \ android \ app \ src \ main \ java \ com \ woods \ gearlog
andyw

1
Che ne dici di iOS?
Suragch,

10
Il mio identificatore di bundle è $(PRODUCT_BUNDLE_IDENTIFIER). Dove si nasconde quella variabile?
Suragch,

3
PRODUCT_BUNDLE_IDENTIFIER è memorizzato in più punti nel file project.pbxproj nella directory ios / Runner.xcodeproj.
Safa Alai,

3
Vale la pena ricordare che l'appID deve essere nel formato di 3 parole separate da punti.
Raj Krishnan R

23

La modifica manuale del nome non sembra funzionare, genera errori di livello, bene nel mio caso genera un errore.

Quindi di solito creo un nuovo progetto flutter.

Uso il comando di seguito indicato per creare una nuova app Flutter

flutter create --org com.yourdomain appname

il tuo progetto avrà il nome del pacchetto come -> com.yourdomain.appname


se si desidera solo mantenere il nome del pacchetto come com.appnamequindi apportare alcune modifiche come di seguito

flutter create --org com appname

per aggiungere java anziché kotlinper androidaggiungere-a java

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

ed è anche abbastanza veloce
grifoni il

2
'flutter create --org com.yourcompany --project-name new_app_name.' (aggiungi il punto se ti trovi all'interno del progetto esistente: dovresti prima eliminare le cartelle Android e iOS per rigenerarle). EFFETTUARE UN BACKUP dovrebbe essere un prerequisito importante per la risposta.
Tommie C.

21

androide

In Android il nome del pacchetto si trova in AndroidManifest:

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

iOS

In iOS il nome del pacchetto è l'identificatore del bundle in Info.plist:

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

che si trova in Runner.xcodeproj / project.pbxproj :

PRODUCT_BUNDLE_IDENTIFIER = com.example.appname;

Cambiare il nome

Il nome del pacchetto si trova in più di una posizione, quindi per modificare il nome è necessario cercare nel progetto intero le occorrenze del vecchio nome del progetto e modificarle tutte.

Android Studio e codice VS:

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

Grazie a diegoveloper per l'aiuto con iOS.

Aggiornare:

Dopo essere tornato su questa pagina un paio di volte diverse, sto pensando che è solo più facile e più pulito avviare un nuovo progetto con il nome giusto e quindi copiare i vecchi file.


19

Modifica nameattributo in pubspec.yaml (riga 1)

Per il nome di apk, cambia android:label inAndroidManifest.xml


1
È richiesto il cambio MainActivity.java o mainActivity.kt
Epsi95

19

Per quelli come me a cui non piace cambiare file specifici, ho usato https://pub.dev/packages/rename .

Installazione: pub global activate rename

E poi, eseguendo: pub global run rename --bundleId com.example.android.app --target android


8

Ecco come ho rinominato il pacchetto sia per iOS che per Android

  1. Vai a build.gradle nel modulo dell'app e rinomina applicationId "com.company.name"
  2. Vai a Manifest.xml in app/src/maine rinomina package="com.company.name"eandroid:label="App Name"
  3. Vai a Manifest.xml in app/src/debuge rinominapackage="com.company.name"
  4. Vai a Manifest.xml in app/src/profilee rinominapackage="com.company.name"
  5. Vai a app/src/main/kotlin/com/something/something/MainActivity.kte rinominapackage="com.company.name"
  6. Vai a app/src/main/kotlin/e rinomina ogni directory in modo che assomigli alla strutturaapp/src/main/kotlin/com/company/name/
  7. Vai a pubspec.yamlnel tuo progetto e cambia name: somethingin name: name, esempio: - se il nome del pacchetto è com.abc.xyzilname: xyz
  8. Vai a ciascun file di dardo nella cartella lib e rinomina le importazioni con il nome modificato.
  9. Apri XCode e apri il file runner e fai clic su Runner in Esplora progetti.
  10. Vai su Generale -> fai doppio clic su Identificatore bundle -> rinominalo in com.company.name
  11. Vai a Info.plist fai clic sul nome del pacchetto -> rinomina il nome della tua app.
  12. chiudi tutto -> vai al tuo progetto flutter ed esegui questo comando nel terminale flutter clean

6

modifica in tutti i file AndroidManifest.xml del tuo progetto Flutter, -> package = "your.name.app " (app / src / debug / AndroidManifest.xml ) e (app / src / main / AndroidManifest.xml ) e (app / src / profile / AndroidManifest.xml )

bell'aspetto !!


Grazie Percy, stavo affrontando questo problema, ho trovato la tua risposta.
Sviluppatore

3

Aggiornato È necessario modificare il nome del pacchetto con il nome del pacchetto desiderato in queste cinque posizioni.

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"

l'ultimo passo è correre flutter clean


3

Sul codice di Visual Studio

Modifica> Sostituisci in file

vs codice sostituire nei file

Su Android Studio

1. Fare clic con il tasto destro del mouse sul progetto> Sostituisci nel percorso

sostituire in percorso

2. Scrivi il tuo vecchio pacchetto e il nuovo pacchetto> Sostituisci tutto

sostituisci tutti gli screenshot



3

In base alla documentazione ufficiale di flutter è sufficiente cambiare la ApplicationIdin app/build.gradledirectory. Quindi devi solo creare il tuo apk e il nome del pacchetto del file manifest verrà modificato in base a quello che ApplicationIdhai modificato build.gradle. A causa del flutter durante la creazione di un apk e Google Play entrambi considerano ApplicationIdda build.gradle. Questa soluzione ha funzionato per me.

fonte: documentazione ufficiale


1

Nella mia app avevo due file manifest.xml, quindi avevo bisogno di cambiare il nome del pacchetto in entrambiQui puoi vedere


0

Puoi seguire questa documentazione ufficiale di Google: https://developer.android.com/studio/build/application-id.html

L'ID applicazione deve essere modificato in Build.gradle, mentre il nome del pacchetto può essere modificato in AndroidManifest.xml.

Comunque si dovrebbe stare attenti a cambiare il nome del pacchetto.

Inoltre, durante il nuovo caricamento dell'app, è necessario fare attenzione poiché corrisponde all'ID dell'applicazione dell'app precedentemente caricata con il nuovo caricamento.


0

In Android, modifica l'ID applicazione in

> build.gradle

modifica di file e iOS

> nome del bundle dalle impostazioni del progetto.


0

Anche se la mia risposta non sarà accettata come la risposta corretta, sento solo che tutte queste risposte sopra mi hanno fatto avere più problemi qui è come l'ho risolto

  1. Ottieni testo sublime (pazzo, vero? No, segui solo i miei passi)
  2. Fai clic sul file e seleziona Apri cartella, quindi scegli la cartella del progetto su cui stai lavorando
  3. Ora fai clic su Trova dalle schede e seleziona trova nei file o fai semplicemente Ctrl+Shift + F (per gli utenti Windows, per gli utenti Mac conosci già il drill)
  4. Ora copia e incolla esattamente il nome del pacchetto che desideri modificare nella sezione Trova e incolla nella sezione Sostituisci ciò con cui desideri sostituire il nome del pacchetto.
  5. Fai clic su TROVA (non fare ancora clic su SOSTITUISCI).
  6. Ora facendo clic su Trova vengono elencati tutti i nomi dei pacchetti disponibili nel progetto che corrispondono ai criteri di ricerca, se si è soddisfatti di ciò, ripetere da no. 3 ma questa volta fai clic su SOSTITUISCI.
  7. Ricostruisci il tuo progetto e divertiti

Conclusione: è sufficiente un semplice programma di ricerca e sostituzione per risolvere questo problema e per questo consiglio vivamente Sublime Text 3.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.