Измените атрибут name в pubspec.yaml (строка 1)
Для названия apk поменять android:label на AndroidManifest.xml
Требуется изменение MainActivity.java или mainActivity.kt
Имя приложения для 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
А как насчет iOS?
@Suragch измените идентификатор пакета из вашего файла Info.plist
Мой идентификатор пакета - $(PRODUCT_BUNDLE_IDENTIFIER). Где прячется эта переменная?
поиск по переменной: PRODUCT_BUNDLE_IDENTIFIER
PRODUCT_BUNDLE_IDENTIFIER хранится в нескольких местах в файле project.pbxproj в каталоге ios / Runner.xcodeproj.
Стоит отметить, что appID должен быть в формате 3 слов, разделенных точками.
Значит, мне нужно только изменить имя пакета в файле build.gradle? как обновляется манифест и структура каталогов?
MainActivity.kt для нового автоматически сгенерированного приложения flutter
@diegoveloper Нужно ли мне искать и заменять все значения PRODUCT_BUNDLE_IDENTIFIER внутри project.pbxproj ИЛИ я могу просто обновить Info.plist один раз?
Вы можете открыть файл xcworkspace и изменить там идентификатор пакета для цели. Info.plist выберет эту переменную.
если вы получите сообщение «Выполнение не выполнено для задачи ': app: processDebugManifest'». - Существует также манифест отладки в android> app> src> debug> AndroidManifest.xml. Вы также можете изменить имя пакета там.
У меня нет этого каталога android \ app \ src \ main \ java \ com \ example \ name в моем проекте, должен ли я его создавать?
@diegoveloper может быть вы можете проверить этот вопрос stackoverflow.com/questions/64186598/…
Получение этой ошибки для Android Overlay manifest:package attribute declared at has a different declared in main manifest at AndroidManifest.xml
Обратите внимание, что большинство новых приложений Flutter поставляются с MainActivity.kt вместо MainActivity.java. Не забудьте переименовать объявление пакета в верхней части этого и переместить его во вложенную папку, которая отражает новое имя пакета.
измените все файлы AndroidManifest.xml вашего проекта Flutter, -> package = "your.name.app " (app / src / debug / AndroidManifest.xml) и (приложение / src / main / AndroidManifest.xml) и (app / src / profile / AndroidManifest.xml)
хороший вид !!
Спасибо, Перси. Я столкнулся с этой проблемой. Я нашел твой ответ.
В Android имя пакета находится в AndroidManifest:
<manifest xmlns:android = "http://schemas.android.com/apk/res/android"
...
package = "com.example.appname">
В 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:
Спасибо Diegoveloper за помощь с iOS.
Вернувшись на эту страницу несколько раз, я думаю, что проще и чище начать новый проект с правильным именем, а затем скопировать старые файлы.
Привет, у меня есть вопрос. Возможно, это не связано с темой Flutter, но как я могу отправить переименованный проект в текущий проект на github, если я создаю новый проект?
@Ooto, Вы можете удалить старый проект (кроме каталога .git в корне), а затем поместить новый проект в тот же каталог, что и старый. Затем зафиксируйте и отправьте изменения.
Работал! Пробовал новый репозиторий шаблонов, ничего не пошло не так
Изменение имени вручную, похоже, не работает, выдает ошибки 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
и это тоже довольно быстро
'flutter create --org com.yourcompany --project-name new_app_name.' (добавьте точку, если вы находитесь в существующем проекте - сначала вы должны удалить папки android и ios, чтобы они были регенерированы). СДЕЛАТЬ РЕЗЕРВНУЮ КОПИЮ должно быть важной предпосылкой для ответа.
вы можете создать новый проект, а затем просто скопировать зависимости pubspec.yaml, запустить pub get, а затем скопировать файлы dart из папки lib
Вы можете следовать этой официальной документации от 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
У меня это сработало.
Так я переименовал пакет как для ios, так и для android
applicationId "com.company.name".app/src/main и переименуйте package = "com.company.name" и android:label = "App Name".app/src/debug и переименуйте package = "com.company.name"app/src/profile и переименуйте package = "com.company.name"app/src/main/kotlin/com/something/something/MainActivity.kt и переименуйте package = "com.company.name"app/src/main/kotlin/ и переименуйте каждый каталог так, чтобы структура выглядела как app/src/main/kotlin/com/company/name/.pubspec.yaml в своем проекте и замените name: something на name: name, например: - если имя пакета - com.abc.xyz, то name: xyzcom.company.nameflutter cleanУ меня нет папки kotlin, и я не уверен, почему
Согласно официальной документации по флаттеру вам просто нужно заменить 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
> имя пакета из настроек проекта.
Даже если мой ответ не будет принят как правильный ответ, я просто чувствую, что все эти ответы выше вызвали у меня больше проблем, вот как я это исправил
Вывод: простая программа поиска и замены - это все, что вам нужно для решения этой проблемы, и я настоятельно рекомендую для этого Sublime Text 3.
Также необходимо обновить путь к файлу, как предложил @diegoveloper в своем ответе. Путем поиска мы не можем искать путь.
Попробовав все вышеперечисленное. Для меня простая работа по переименованию флаттера пакетов с помощью Android Studio:
Шаг 1:
Mac: Command + Shift + R
Linux / Windows: Ctrl + Shift + R
После перехода на новый пакет нажмите Replace All и дождитесь завершения запуска 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
право изменить путь по умолчанию как для Android, так и для iOS.
для Android
откройте AndroidManifest.xml,
приложение / SRC / основной / AndroidManifest.xml
__________________________________________________________________________
для Иос
Если вам не нравится изменять файлы таким образом, альтернативным способом будет использование этого пакета.
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. Вы получили другой результат?
Самый быстрый и чистый способ изменить имя вашего пакета!
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 и внести изменения, внесенные этим процессом.
На сегодняшний день это самое быстрое и простое решение. Пожалуйста, не забудьте сделать резервную копию всех файлов в android / и ios / перед их удалением!
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
Чтобы изменить имя пакета во флаттере, вы должны сделать это для все платформы.
Чтобы было проще, предлагаю использовать пакет переименовать.
Просто запустите эту команду в корне вашего проекта 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 по всем файлам.,
они появятся
Замените все это и вуаля. Если вы уже создали свой проект, в каталоге build появятся многочисленные файлы, вы можете игнорировать эти файлы, менять их не нужно.
Работает ли это и для iOS?
@Yalzeee, я так не думаю
Начиная с Android Studio 4.1.3, изменить имя пакета стало проще простого.
Если вы не используете Firebase или любую другую внешнюю службу, просто измените имя пакета в этих файлах:
ПРИМЕЧАНИЕ: также измените имя каталога (в 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> выберите Бегун> На вкладке Генеральная вы можете изменить Идентификатор пакета.
Это самый простой способ, если вы уже создали проект и не знаете, как сложно изменить имя пакета.
Просто найдите и замените все вхождения старого имени пакета во всех файлах. Команды или аналогичной команды для обновления имени пока нет.