Есть ли способ изменить имя пакета проекта Flutter?
Я хочу изменить имя пакета и имя приложения в проекте flutter.
flutter create --org com.domain app_name
Есть ли способ изменить имя пакета проекта Flutter?
Я хочу изменить имя пакета и имя приложения в проекте flutter.
flutter create --org com.domain app_name
Ответы:
Имя приложения для 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
$(PRODUCT_BUNDLE_IDENTIFIER)
. Где прячется эта переменная?
Изменение имени вручную, похоже, не работает, выдает ошибки 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
В 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.
Вернувшись на эту страницу несколько раз, я думаю, что проще и чище начать новый проект с правильным именем, а затем скопировать старые файлы.
Для тех, кто вроде меня не любит менять определенные файлы, я использовал https://pub.dev/packages/rename .
Установка: pub global activate rename
А затем запускаем: pub global run rename --bundleId com.example.android.app --target android
Так я переименовал пакет как для 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: xyz
com.company.name
flutter clean
измените все файлы AndroidManifest.xml вашего проекта Flutter, -> package = "your.name.app " (app / src / debug / AndroidManifest.xml ) и (app / src / main / AndroidManifest.xml ) и (app / SRC / профиль / AndroidManifest.xml )
хороший вид !!
Согласно официальной документации по флаттеру, вам просто нужно изменить каталог ApplicationId
in app/build.gradle
. Затем вам нужно просто создать свой apk, и имя пакета файла манифеста будет изменено в соответствии с тем, что ApplicationId
вы изменили в build.gradle
. Из-за флаттера при создании apk и google play оба учитывают ApplicationId
build.gradle. Это решение сработало для меня.
Источник: Официальная документация
Обновлено Вы должны изменить имя пакета на желаемое имя пакета в этих пяти местах.
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
Вы можете следовать этой официальной документации от Google: https://developer.android.com/studio/build/application-id.html
Идентификатор приложения следует изменить в Build.gradle, а имя пакета можно изменить в AndroidManifest.xml.
Однако при изменении имени пакета следует быть осторожным.
Также при повторной загрузке приложения следует быть осторожным, поскольку он совпадает с идентификатором ранее загруженного приложения с новой загрузкой.
В Android измените идентификатор приложения в
> build.gradle
файл и изменение iOS
> имя пакета из настроек проекта.
Даже если мой ответ не будет принят как правильный ответ, я просто чувствую, что все эти ответы выше вызвали у меня больше проблем, вот как я это исправил
Вывод: простая программа поиска и замены - это все, что вам нужно для решения этой проблемы, и я настоятельно рекомендую для этого Sublime Text 3.