Как изменить имя пакета во флаттере?

161

Есть ли способ изменить имя пакета проекта Flutter?

Я хочу изменить имя пакета и имя приложения в проекте flutter.

Abc Xyz
источник
4
Просто найдите и замените все вхождения старого имени пакета во всех файлах. Команды или аналогичной команды для обновления имени пока нет.
Günter Zöchbauer
3
Когда вы создаете новый проект, вы можете указать имя пакета с помощьюflutter create --org com.domain app_name
Виктор,

Ответы:

291

Имя приложения для Android

Измените название метки в вашем AndroidManifest.xmlфайле:

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

Для имени пакета

Измените имя пакета в вашем AndroidManifest.xmlфайле:

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

Также в вашем build.gradleфайле внутри папки приложения

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

Наконец, измените пакет в своем MainActivity.javaклассе (если MainActivity.java недоступен, проверьте 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 {

Измените имя каталога:

Из:

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

Для того, чтобы:

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

ИЗМЕНИТЬ: 27 декабря 18

для имени пакета просто изменить в сборке build.gradleтолько

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

Для iOS

Измените идентификатор пакета из вашего Info.plistфайла внутри вашего ios/Runnerкаталога.

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

ОБНОВИТЬ

Чтобы избежать переименования пакета и идентификатора пакета, вы можете запустить свой проект с помощью этой команды в своем терминале:

flutter create --org com.yourdomain appname
diegoveloper
источник
1
Мне также пришлось обновить имя каталога ниже (заменив 'example' на 'woods') C: \ Users \ andytwoods \ IdeaProjects \ gear_log \ android \ app \ src \ main \ java \ com \ woods \ gearlog
andyw
1
А как насчет iOS?
Suragch
10
Идентификатор моего пакета $(PRODUCT_BUNDLE_IDENTIFIER). Где прячется эта переменная?
Suragch
3
PRODUCT_BUNDLE_IDENTIFIER хранится в нескольких местах в файле project.pbxproj в каталоге ios / Runner.xcodeproj.
Сафа Алай
3
Стоит отметить, что appID должен быть в формате 3 слов, разделенных точками.
Raj Krishnan R
24

Изменение имени вручную, похоже, не работает, выдает ошибки Gradle, ну, в моем случае это вызывает ошибку.

Поэтому я обычно создаю новый проект флаттера.

Я использую указанную ниже команду для создания нового приложения флаттера.

flutter create --org com.yourdomain appname

ваш проект будет иметь имя пакета как -> com.yourdomain.appname


если вы просто хотите сохранить имя своего пакета, com.appnameвнесите некоторые изменения, как показано ниже

flutter create --org com appname

добавить Java вместо kotlinдля androidоных-a java

flutter create -a java --org com.yourdomain appname
Вики Салунхе
источник
и это тоже довольно быстро
грифоны
2
'flutter create --org com.yourcompany --project-name new_app_name.' (добавьте точку, если вы находитесь внутри существующего проекта - сначала вы должны удалить папки android и ios, чтобы они были восстановлены). СДЕЛАТЬ РЕЗЕРВНУЮ КОПИЮ должно быть важной предпосылкой для ответа.
Tommie C.
21

Android

В Android имя пакета находится в AndroidManifest:

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

IOS

В iOS имя пакета - это идентификатор пакета в Info.plist:

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

который находится в Runner.xcodeproj / project.pbxproj :

PRODUCT_BUNDLE_IDENTIFIER = com.example.appname;

Смена имени

Имя пакета находится более чем в одном месте, поэтому, чтобы изменить имя, вы должны искать во всем проекте вхождения вашего старого имени проекта и изменять их все.

Android Studio и VS Code:

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

Спасибо diegoveloper за помощь с iOS.

Обновить:

Вернувшись на эту страницу несколько раз, я думаю, что проще и чище начать новый проект с правильным именем, а затем скопировать старые файлы.

Suragch
источник
20

Для тех, кто вроде меня не любит менять определенные файлы, я использовал https://pub.dev/packages/rename .

Установка: pub global activate rename

А затем запускаем: pub global run rename --bundleId com.example.android.app --target android

finx
источник
19

Изменить nameатрибут в pubspec.yaml (строка 1)

Для названия apk поменяйте android:label вAndroidManifest.xml

Фа Кур
источник
1
Требуется изменение MainActivity.java или mainActivity.kt
Epsi95
8

Так я переименовал пакет как для iOS, так и для Android

  1. Перейдите в build.gradle в модуле приложения и переименуйте applicationId "com.company.name"
  2. Перейдите в Manifest.xml app/src/mainи переименуйте package="com.company.name"иandroid:label="App Name"
  3. Перейдите в Manifest.xml app/src/debugи переименуйтеpackage="com.company.name"
  4. Перейдите в Manifest.xml app/src/profileи переименуйтеpackage="com.company.name"
  5. Перейти app/src/main/kotlin/com/something/something/MainActivity.ktи переименоватьpackage="com.company.name"
  6. Перейдите в app/src/main/kotlin/каждый каталог и переименуйте его так, чтобы структура выглядела какapp/src/main/kotlin/com/company/name/
  7. Перейти pubspec.yamlв вашем проекте и изменения name: somethingк name: name, например: - если имя пакетаcom.abc.xyzname: xyz
  8. Перейдите к каждому файлу дротика в папке lib и переименуйте импорты на измененное имя.
  9. Откройте XCode, откройте файл runner и нажмите Runner в проводнике проекта.
  10. Перейдите в Общие -> дважды щелкните Идентификатор пакета -> переименуйте его в com.company.name
  11. Перейдите в Info.plist, нажмите на Bundle name -> переименуйте его в свое имя приложения.
  12. закройте все -> перейдите в свой проект флаттера и запустите эту команду в терминале flutter clean
Гаган Рагхунатх
источник
6

измените все файлы AndroidManifest.xml вашего проекта Flutter, -> package = "your.name.app " (app / src / debug / AndroidManifest.xml ) и (app / src / main / AndroidManifest.xml ) и (app / SRC / профиль / AndroidManifest.xml )

хороший вид !!

Перси Рохас
источник
Спасибо, Перси. Я столкнулся с этой проблемой. Я нашел твой ответ.
Разработчик
4

Согласно официальной документации по флаттеру, вам просто нужно изменить каталог ApplicationIdin app/build.gradle. Затем вам нужно просто создать свой apk, и имя пакета файла манифеста будет изменено в соответствии с тем, что ApplicationIdвы изменили в build.gradle. Из-за флаттера при создании apk и google play оба учитывают ApplicationIdbuild.gradle. Это решение сработало для меня.

Источник: Официальная документация

йаш
источник
3

Обновлено Вы должны изменить имя пакета на желаемое имя пакета в этих пяти местах.

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"

последний шаг - бежать flutter clean

Атул Чаудхари
источник
3

В коде Visual Studio

Правка> Заменить в файлах

vs заменить код в файлах

В студии Android

1. Щелкните свой проект правой кнопкой мыши> Заменить в пути.

заменить в пути

2. Напишите свой старый пакет и новый пакет> Заменить все

заменить весь скриншот

SHB
источник
омг, ты просто лучший
Н Шиварам
1

У меня было два файла manifest.xml в разделе моего приложения, поэтому мне нужно было изменить имя пакета в обоихЗдесь вы можете увидеть

Прогга Ильма
источник
0

Вы можете следовать этой официальной документации от Google: https://developer.android.com/studio/build/application-id.html

Идентификатор приложения следует изменить в Build.gradle, а имя пакета можно изменить в AndroidManifest.xml.

Однако при изменении имени пакета следует быть осторожным.

Также при повторной загрузке приложения следует быть осторожным, поскольку он совпадает с идентификатором ранее загруженного приложения с новой загрузкой.

Абхиджит Сингх
источник
0

В Android измените идентификатор приложения в

> build.gradle

файл и изменение iOS

> имя пакета из настроек проекта.

Гурвиндер Сингх
источник
0

Даже если мой ответ не будет принят как правильный ответ, я просто чувствую, что все эти ответы выше вызвали у меня больше проблем, вот как я это исправил

  1. Получить Sublime Text (сумасшедший, правда? Нет, просто следуй моим шагам)
  2. Щелкните файл и выберите открытую папку, затем выберите папку проекта, над которым вы работаете.
  3. Теперь нажмите «Найти на вкладках» и выберите «Найти в файлах» или просто нажмите Ctrl+ Shift+ F (для пользователей Windows, для пользователей Mac вы уже знакомы с этим упражнением)
  4. Теперь скопируйте и вставьте точно имя пакета, который вы хотите изменить, в разделе «Найти» и вставьте в раздел замены то, на что вы хотите заменить имя пакета.
  5. Нажмите НАЙТИ (пока не нажимайте ЗАМЕНИТЬ).
  6. Теперь, нажав «Найти», вы увидите список всех доступных имен пакетов в вашем проекте, которые соответствуют вашим критериям поиска. Если вас это устраивает, повторите с «нет». 3, но на этот раз нажмите ЗАМЕНИТЬ.
  7. Восстановите свой проект и получайте удовольствие

Вывод: простая программа поиска и замены - это все, что вам нужно для решения этой проблемы, и я настоятельно рекомендую для этого Sublime Text 3.

Амос Менса Кей
источник
Также необходимо обновить путь к файлу, как предложил @diegoveloper в своем ответе. Путем поиска мы не можем искать путь.
Рахмат Али,