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

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

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

Просто найдите и замените все вхождения старого имени пакета во всех файлах. Команды или аналогичной команды для обновления имени пока нет.

Günter Zöchbauer 26.07.2018 11:00

При создании нового проекта вы можете указать имя пакета с помощью flutter create --org com.domain app_name.

Victor 14.04.2020 12:35
283
2
189 879
24
Перейти к ответу Данный вопрос помечен как решенный

Ответы 24

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

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

Требуется изменение MainActivity.java или mainActivity.kt

Epsi95 30.05.2020 09:11
Ответ принят как подходящий

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

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

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

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

Измените имя пакета в вашем AndroidManifest.xml (в трех из них папки: main, debug и profile, в зависимости от того, в какой среде вы хотите развернуть) файл:

<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

Мне также пришлось обновить имя каталога ниже (изменив 'example' на 'woods') C: \ Users \ andytwoods \ IdeaProjects \ gear_log \ android \ app \ src \ ma‌ в \ java \ com \ woods \ ge‌ arlog

andyw 24.10.2018 12:14

А как насчет iOS?

Suragch 12.03.2019 18:23

@Suragch измените идентификатор пакета из вашего файла Info.plist

diegoveloper 12.03.2019 18:23

Мой идентификатор пакета - $(PRODUCT_BUNDLE_IDENTIFIER). Где прячется эта переменная?

Suragch 12.03.2019 18:26

поиск по переменной: PRODUCT_BUNDLE_IDENTIFIER

diegoveloper 12.03.2019 18:26

PRODUCT_BUNDLE_IDENTIFIER хранится в нескольких местах в файле project.pbxproj в каталоге ios / Runner.xcodeproj.

Safa Alai 02.05.2019 21:52

Стоит отметить, что appID должен быть в формате 3 слов, разделенных точками.

Raj Krishnan R 03.08.2019 19:15

Значит, мне нужно только изменить имя пакета в файле build.gradle? как обновляется манифест и структура каталогов?

user2570135 14.09.2019 21:25

MainActivity.kt для нового автоматически сгенерированного приложения flutter

Mohamed Dernoun 23.10.2019 09:53

@diegoveloper Нужно ли мне искать и заменять все значения PRODUCT_BUNDLE_IDENTIFIER внутри project.pbxproj ИЛИ я могу просто обновить Info.plist один раз?

Raj Chaudhary 08.07.2020 10:33

Вы можете открыть файл xcworkspace и изменить там идентификатор пакета для цели. Info.plist выберет эту переменную.

Amber K 05.08.2020 16:17

если вы получите сообщение «Выполнение не выполнено для задачи ': app: processDebugManifest'». - Существует также манифест отладки в android> app> src> debug> AndroidManifest.xml. Вы также можете изменить имя пакета там.

Divakar Rajesh 23.08.2020 15:59

У меня нет этого каталога android \ app \ src \ main \ java \ com \ example \ name в моем проекте, должен ли я его создавать?

AliAzad 24.08.2020 06:25

@diegoveloper может быть вы можете проверить этот вопрос stackoverflow.com/questions/64186598/…

Rocx 04.10.2020 04:54

Получение этой ошибки для Android Overlay manifest:package attribute declared at has a different declared in main manifest at AndroidManifest.xml

Shajeel Afzal 30.11.2020 19:45

Обратите внимание, что большинство новых приложений Flutter поставляются с MainActivity.kt вместо MainActivity.java. Не забудьте переименовать объявление пакета в верхней части этого и переместить его во вложенную папку, которая отражает новое имя пакета.

Dzhuneyt 03.07.2021 21:49

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

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

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

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

Developer 04.10.2019 18:57

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.

Обновлять:

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

Привет, у меня есть вопрос. Возможно, это не связано с темой Flutter, но как я могу отправить переименованный проект в текущий проект на github, если я создаю новый проект?

Ooto 02.11.2020 16:43

@Ooto, Вы можете удалить старый проект (кроме каталога .git в корне), а затем поместить новый проект в тот же каталог, что и старый. Затем зафиксируйте и отправьте изменения.

Suragch 03.11.2020 00:42

Работал! Пробовал новый репозиторий шаблонов, ничего не пошло не так

blackkara 13.02.2021 01:43

Изменение имени вручную, похоже, не работает, выдает ошибки 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

РЕДАКТИРОВАТЬ


Если вы уже создали проект, вы можете использовать пакет change_app_package_name, чтобы изменить имя пакета.

flutter pub run change_app_package_name:main com.package.appname

и это тоже довольно быстро

griffins 17.09.2019 09:50

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

Tommie C. 31.01.2020 18:21

вы можете создать новый проект, а затем просто скопировать зависимости pubspec.yaml, запустить pub get, а затем скопировать файлы dart из папки lib

Filippos Zofakis 28.09.2020 18:15

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

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

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

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

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

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

У меня это сработало.

Meet 06.01.2021 09:31

Так я переименовал пакет как для 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.xyz, то name: xyz
  8. Перейдите к каждому файлу дротика в папке lib и переименуйте импорт на измененное имя.
  9. Откройте XCode, откройте файл runner и щелкните Runner в проводнике проекта.
  10. Перейдите в Общие -> дважды щелкните Идентификатор пакета -> переименуйте его в com.company.name
  11. Перейдите в Info.plist, нажмите Bundle name -> переименуйте его в свое имя приложения.
  12. закройте все -> перейдите в свой проект флаттера и запустите эту команду в терминале flutter clean

У меня нет папки kotlin, и я не уверен, почему

Swift 19.12.2020 03:56

В коде Visual Studio

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

vs code replace in files

В студии Android

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

replace in path

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

replace all screenshot

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

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

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

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

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

А затем запустите эту команду в корне вашего проекта flutter.

pub global run rename --bundleId com.example.android.app --target android

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

> build.gradle

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

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

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

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

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

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

Rahmat Ali 04.08.2020 13:46

Попробовав все вышеперечисленное. Для меня простая работа по переименованию флаттера пакетов с помощью Android Studio:

Шаг 1:

Mac: Command + Shift + R

Linux / Windows: Ctrl + Shift + R

После перехода на новый пакет нажмите Replace All и дождитесь завершения запуска Android Studio.

flutter rename package in Android Studio

Шаг 2:

Далее переходим к AndroidManifest.xml:

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

и скопируйте package name и выполните тот же шаг 1, чтобы переименовать package в AndroidManifest и build.gradle.

Наконец, измените пакет в своем классе 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\new_package\name

Измените имя пакета приложения на single command, используя следующий пакет. Это делает процесс очень простым и быстрым.

flutter pub run change_app_package_name:main com.new.package.name

https://pub.dev/packages/change_app_package_name

право изменить путь по умолчанию как для Android, так и для iOS.

для Android

откройте AndroidManifest.xml,

  • иди по этому пути.

приложение / SRC / основной / AndroidManifest.xml

  • выберите имя пакета и щелкните правой кнопкой мыши,

  • после нажатия на переименовать, переименовать всплывающее окно (диалог) показать.

  • введите здесь новое имя пакета,

  • после изменения текста имени нажмите кнопку рефакторинга.

__________________________________________________________________________

для Иос

  • выберите папку ios из ящика и щелкните их правой кнопкой мыши,

  • выберите и дважды щелкните Runner в ящике, а затем выберите General

  • а затем измените свой идентификатор пакета (имя пакета).
  • после изменений Идентификатор пакета (имя пакета), имя вашего пакета поменял на Иос.

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

https://pub.dev/packages/rename

rename --bundleId com.newpackage.appname
pub global run rename --appname "Your New App Name"

Используя это, вы просто запускаете эти 2 команды в своем терминале, и имя и идентификаторы вашего приложения будут изменены. Глобальный запуск pub

Кажется, это изменило applicationId только в одном месте (build.gradle). Он не обновлял AndroidManifest. Вы получили другой результат?

Swift 18.12.2020 05:43

Самый быстрый и чистый способ изменить имя вашего пакета!

Предупреждение:

If you have edited the contents of the folders android/ and ios/, you need to make sure you have those changes backed up somewhere before proceeding.

1. Удалите папки в корне вашего проекта flutter:

  • android/
  • ios/
  • build/

Допустим, вы хотите переименовать из com.oldcompany.oldproject в com.newcompany.newproject.

2. Запустите следующую команду из корня вашего проекта:

flutter create --org com.newcompany --project-name newproject .

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

grep --color -r com.oldcompany.oldproject *
grep --color -r com.newcompany.newproject *

Это лучший ответ, определенно самое чистое и быстрое решение! Если вы изменили файлы для конкретной платформы, обязательно сделайте их резервную копию и верните изменения. Самый простой способ - использовать репозиторий GIT и внести изменения, внесенные этим процессом.

Micer 08.01.2021 23:09

На сегодняшний день это самое быстрое и простое решение. Пожалуйста, не забудьте сделать резервную копию всех файлов в android / и ios / перед их удалением!

gmdev 31.03.2021 01:47

Легко изменить имя пакета приложения с помощью пакета change_app_package_name

просто добавьте указанный выше пакет в зависимости от разработчика

dev_dependencies:
  flutter_test:
    sdk: flutter
  change_app_package_name: ^0.1.2

и выполните следующую команду, замените com.new.package.name на свое новое имя пакета.

flutter pub run change_app_package_name:main com.new.package.name

Ссылка на пакет на Pub Dev

screenshot of Package

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

Чтобы было проще, предлагаю использовать пакет переименовать.

Просто запустите эту команду в корне вашего проекта flutter.

pub global run rename --bundleId com.onat.networkApp

Here, com.onat.networkApp is your package name

Чтобы настроить таргетинг на конкретную платформу, используйте параметр «-t». например:

pub global run rename --bundleId com.example.android.app -t android

Вы можете узнать больше о пакете переименоватьздесь

ЛЕГКИЙ способ поиска в редакторе Например, VS CODE your.package.name Например, com.example.application по всем файлам.,

  • 3 файла AndroidManifest (профиль, отладка, основной)
  • 1 build.gradle
  • 1 Java или kt файл

они появятся

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

Работает ли это и для iOS?

Yalzeee 28.03.2021 23:55

@Yalzeee, я так не думаю

Ajay Tom George 29.03.2021 08:42

Начиная с Android Studio 4.1.3, изменить имя пакета стало проще простого.

Если вы не используете Firebase или любую другую внешнюю службу, просто измените имя пакета в этих файлах:

  1. В файле build.gradle (app)
  2. В файле манифеста (основной, отладочный и профиль)
  3. Импорт пакета в файлах кода (изменения внесет Android Studio.)

ПРИМЕЧАНИЕ: также измените имя каталога (в Kotlin или Java).

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

Если вы еще не начали проект, это лучший способ.

flutter create --org com.yourdomain appname

Если вы уже создали проект, установите этот упаковка в свои dev_dependencies и выполните эту команду.

flutter pub run change_app_package_name:main com.new.package.name

Это изменит все сложные вещи, связанные с изменением имени пакета в android. И щелкните правой кнопкой мыши папку флаттера iOS и откройте ее с помощью Xcode.

В Xcode> выберите Бегун> На вкладке Генеральная вы можете изменить Идентификатор пакета.

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

Другие вопросы по теме