如何在 flutter 中更改包名称?

How to change package name in flutter?

有什么办法可以更改Flutter项目的包名吗?

我想修改flutter项目中的包名和应用名

更改 pubspec.yaml 中的 name 属性(第 1 行)

apk的名字,在AndroidManifest.xml

中改成android:label

对于 Android 应用名称

更改 AndroidManifest.xml 文件中的标签名称:

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

包名

更改 AndroidManifest.xml 中的包名称(其中 3 个文件夹: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 class中的包(如果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
  

编辑:18 年 12 月 27 日

对于 包名称 仅在构建 build.gradle 中更改

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

对于iOS

ios/Runner 目录中的 Info.plist 文件更改包标识符。

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

更新

为避免重命名包和包标识符,您可以在终端中使用此命令启动项目:

flutter create --org com.yourdomain appname

我的应用程序部分有两个 manifest.xml 文件,所以我需要更改两个文件中的包名称

更改您的 Flutter 项目的所有 AndroidManifest.xml 文件,--> package="your.name.app" (app/src/debug/AndroidManifest.xml) 和 (app/src/main/AndroidManifest.xml) 和 (app/src/profile/AndroidManifest.xml)

好看!!

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: 命令 + Shift + F
  • Linux/Windows: Ctrl + Shift + F

感谢 对 iOS 的帮助。

更新:

在多次返回此页面后,我认为以正确的名称开始一个新项目然后将旧文件复制过来会更简单、更清晰。

手动更改名称似乎不起作用,会抛出 gradle 错误,在我的情况下确实会抛出错误。

所以我一般都是新建一个flutter工程

我使用下面提到的命令创建一个新的 flutter 应用程序

flutter create --org com.yourdomain appname

您的项目的包名称为 -> com.yourdomain.appname


如果您只是想将您的包名称保留为 com.appname 然后进行一些如下更改

flutter create --org com appname

android 添加 java 而不是 kotlin 添加 -a java

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

编辑


如果您已经创建了一个项目,您可以使用 change_app_package_name package 更改包名称。

flutter pub run change_app_package_name:main com.package.appname

您可以通过 Google 关注此官方文档:https://developer.android.com/studio/build/application-id.html

应在 Build.gradle 中更改应用程序 ID,而在 AndroidManifest.xml 中可以更改程序包名称。

但是更改包名时要小心。

另外在重新上传应用时,要小心,因为它会将以前上传的应用的应用程序ID与新上传的应用程序ID匹配。

已更新您必须在这些中将包名称更改为您想要的包名称 五个地点。

1.) src/profile/AndroidManifest.xml
2.) src/debug/AndroidManifest.xml
3.) src/main/AdroidManifest.xml
4.) app/build.gradle
     build.gradle .
       defaultConfig {
           applicationId
       }
5.) MainActivity.java or MainActivity.kt on "package"

最后一步是运行flutter clean

这就是我为 ios 和 android

重命名包的方式
  1. 转到应用程序模块中的 build.gradle 并重命名 applicationId "com.company.name"
  2. 转到 app/src/main 中的 Manifest.xml 并重命名 package="com.company.name"android:label="App Name"
  3. 转到 app/src/debug 中的 Manifest.xml 并重命名 package="com.company.name"
  4. 转到 app/src/profile 中的 Manifest.xml 并重命名 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 文件夹中的每个 dart 文件并将导入重命名为修改后的名称。
  9. 打开 XCode 并打开 运行ner 文件并在项目资源管理器中单击 Runner。
  10. 转到常规 -> 双击 Bundle Identifier -> 将其重命名为 com.company.name
  11. 转到 Info.plist 单击 Bundle name -> 将其重命名为您的 App Name。
  12. 关闭所有内容 -> 转到您的 flutter 项目并 运行 在终端中执行此命令 flutter clean

上Visual Studio代码

编辑 > 在文件中替换

在 Android 工作室

1.右键单击您的项目 > 在路径中替换

2。写你的旧包和新包 > 全部替换

根据 flutter 官方文档,您只需更改 app/build.gradle 目录中的 ApplicationId 即可。然后你只需要构建你的 apk,清单文件的包名称将根据你在 build.gradle 中更改的 ApplicationId 进行更改。由于在构建 apk 和 google 时会出现抖动,因此请考虑 build.gradle 中的 ApplicationId。这个解决方案对我有用。

来源:Official Documentation

对于像我这样不喜欢更改特定文件的人,我使用了 https://pub.dev/packages/rename

使用它,您只需在终端中 运行 这些命令,您的应用程序名称和标识符将 changed.pub 全局 运行

正在安装:pub global activate rename

然后,运行 在您的 flutter 项目根目录中执行此命令。

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

在Android中,更改

中的应用程序ID

> build.gradle

文件和iOS更改

> 项目设置中的包名称。

即使我的答案不会被接受为正确答案,我只是觉得上面的所有这些答案让我遇到了更多问题这里是我解决它的方法

  1. 获取 Sublime Text(疯了吧?不,只要按照我的步骤操作)
  2. 单击文件并select打开文件夹,然后选择您正在处理的项目的文件夹
  3. 现在单击“从选项卡中查找”,然后 select 在文件中查找或直接执行 Ctrl + Shift + F(对于 Windows 用户,对于 mac 用户,您已经知道该练习)
  4. 现在,在“查找”部分中准确复制并粘贴要更改的包的名称,然后在“替换”部分中粘贴要替换包名称的名称。
  5. 点击“查找”(暂时不要点击“替换”)。
  6. 现在单击“查找”会列出项目中符合搜索条件的所有可用包名称,如果您对此感到满意,则从第 1 个开始重复。 3 但这次点击 REPLACE。
  7. 重建您的项目并享受乐趣

结论:一个简单的查找和替换程序就可以解决这个问题,为此我强烈推荐 Sublime Text 3。

在尝试了以上所有方法之后。对我来说重命名包 flutter 的简单工作 Android工作室:

第 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 以在 AndroidManifestbuild.gradle.

中重命名 package

最后,更改MainActivity.java class中的包(如果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 {

更改目录名称。 详情见下文linkthis:

发件人:

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,

  • 走这条路。

app/src/main/AndroidManifest.xml

  • select 包名,然后右击,

  • 点击重命名后,重命名弹出(对话框)显示。

  • 在这里输入新的包名,

  • 更改名称文本后,单击重构按钮。

__________________________________________________________________________

对于Ios

  • select ios 抽屉中的文件夹,然后右键单击这些文件夹,

  • select,双击抽屉里的Runner,然后select General

  • 然后,更改您的 Bundle Identifier(包名称)。
  • 更改包标识符(包名称)后,您的包名称是 Ios.
  • 更改

如果您不喜欢以这种方式更改文件,那么替代方法是使用此包。

https://pub.dev/packages/rename

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

使用它,您只需在终端中 运行 这 2 个命令,您的应用程序名称和标识符将 changed.pub 全局 运行

更改包名称的最快捷方式!

警告:

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

1。删除 flutter 项目根目录下的文件夹:

  • android/
  • ios/
  • windows/
  • 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 *

使用 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

Package Link on Pub Dev

要在 flutter 中更改 包名称,您必须对 所有平台.

执行此操作

为了更简单,我建议你使用rename包。

只需 运行 你的 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

您可以了解更多关于 重命名here

简单的方法,在编辑器中搜索 E.g.VS CODE your.package.name 例如 com.example.application 通过所有文件。,

  • 3 个 AndroidManifest 文件(配置文件、调试、主要文件)
  • 1 build.gradle
  • 1 java 或 kt 文件

这些将弹出

替换所有这些,瞧。如果您已经构建了您的项目,build 目录中会弹出许多文件,您可以忽略这些文件,无需更改那些

从 Android Studio 4.1.3 开始,更改包名称再简单不过了。

如果您不使用 Firebase 或任何其他外部服务,只需更改这些文件中的包名称:

  1. 在 build.gradle(应用程序)文件中
  2. 在清单文件(主要、调试和配置文件)中
  3. 代码文件中的包导入(AndroidStudio。将处理更改)

注意:还要更改目录名称(在 Kotlin 或 Java 下)。

如果您使用 Firebase 或任何其他外部服务,您也需要更改那里的包名称。

如果您还没有开始这个项目,这是最好的方法。

flutter create --org com.yourdomain appname

如果您已经创建了该项目,请在您的 dev_dependencies 和 运行 此命令中安装此 package

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

这将改变 android 中更改包名称的所有复杂内容。然后右击flutter的iOS文件夹,用Xcode.

打开

Xcode>select亚军>在一般 选项卡,您可以更改 捆绑包标识符。

如果您已经创建了一个项目并且不知道更改包名称的复杂性,这是最简单的方法。

我认为这不是解决问题的正确方法。但是您可以只用您想要的包名称创建一个新项目,然后将所有源文件从现有项目复制到新项目。

**注意:您还必须复制 pubspec 的所有内容。对于 firebase 和其他 API,该解决方案可能有点冗长。

尽可能简单地使用这个change_app_package_name包首先添加依赖项

 dev_dependencies: 
  change_app_package_name: lates version

然后运行这个命令

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

我已经对现有包名称进行了全局搜索,并使用新包名称更改了所有字段。然后改了

app->src->main->yourOldFolderName

根据新包名称的文件夹名称。之后,将所有导入的包名称更改为新的包名称。这是很多手动工作,但很值得,没有任何问题。

注意:注意包名前的空白 space 它可能会产生构建错误

捷径:

global search- ctrl+shift+f

要更改包

file search- ctrl+f

更改导入包名称

  1. 首先,运行在您的终端

    dart pub global activate rename

  2. 运行 这个在你的 Flutter 项目根目录下

    dart pub global run rename --bundleId com.company.appname --target android

就是这样,现在您更改了包名:)