如何在Flutter中更改包名?

492

有没有办法更改Flutter项目的软件包名称?

我想在Flutter项目中更改软件包名称和应用程序名称。


8
只需在所有文件中搜索并替换旧软件包名称的所有出现。目前还没有更新名称的命令或类似命令。 - Günter Zöchbauer
22
创建新项目时,您可以使用 flutter create --org com.domain app_name 指定包名。 - Victor
这个回答解决了您的问题吗?如何在Flutter中更改应用程序包名称而不使用Android Studio? - Jannie Theunissen
1
@JannieTheunissen 这个问题似乎比这个更具体。如果有什么的话,那个应该被关闭为这个问题的重复。 - cigien
@Victor app_name 将被附加为一个包,因此最终您将拥有类似于 com.domain.app_name 的东西。因此,如果您具有像 app.foo.com 这样的域子域,并且想要创建名称为 app 的应用程序,则最终将得到 com.foo.app.app,这很丑陋。 - Alex
34个回答

11

关于 Visual Studio Code

编辑 > 在文件中替换

vs code replace in files

关于 Android Studio

1. 右键单击你的项目 > 替换路径

replace in path

2. 输入旧的包名和新的包名 > 全部替换

replace all screenshot


11

更新: 您需要在这五个位置中将软件包名称更改为所需的软件包名称。

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


当更改包名时,在module-android中,需要更改文件夹名称。(例如:com.google.app)有3个名为com和google和app的文件夹。 - Esmaeil Ahmadipour

9
根据官方Flutter文档,您只需要在“app/build.gradle”目录中更改。然后,您只需构建您的apk文件,清单文件的包名称将根据您在“build.gradle”中更改的进行更改。由于Flutter在构建apk时和Google Play都从build.gradle中考虑,所以这个解决方案适用于我。
来源:官方文档

9

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

祝好运!


7

在Flutter中更改软件包名称,您必须对所有平台进行更改。

为了使其更容易,建议您使用rename软件包。

只需在flutter项目根目录中运行此命令即可。

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

这里的 com.onat.networkApp 是你的包名

要针对特定平台进行目标设置,请使用 "-t" 选项。 例如:

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

您可以在此处了解有关重命名包的更多信息。

7

使用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上的软件包链接

软件包截图


6

更改 Android 和 Ios 默认路径的权限。

对于 Android:

打开 AndroidManifest.xml 文件,

  • 进入以下路径。

app/src/main/AndroidManifest.xml

  • 选择包名,然后右键单击,

enter image description here

  • 在点击重命名之后,将会显示重命名弹出窗口(对话框)。

enter image description here

  • 在此处输入新的包名,

enter image description here

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

__________________________________________________________________________

对于 Ios:

  • 从抽屉中选择 ios 文件夹,然后右键单击这些文件,

enter image description here

  • 选择 Runner 并双击,然后选择 General

enter image description here

  • 然后更改您的 Bundle Identifier(包名)。
  • 更改 Bundle Identifier(包名) 后,您的 Ios 包名将被更改。

5

3
即使我的答案不被接受为正确答案,我觉得所有上面的答案都让我在这里遇到了更多问题。以下是我如何解决的步骤:
  1. 获取Sublime Text(疯狂吧?没错,只需按照我的步骤操作)
  2. 单击文件并选择打开文件夹,然后选择您正在工作的项目文件夹
  3. 现在单击“Tab查找”,并选择“在文件中查找”或者直接按下Ctrl+Shift+F (对于Windows用户,请执行此操作,对于Mac用户您已经知道该怎么做了)
  4. 现在将要更改的包的名称完全复制并粘贴到"查找"部分,并将要替换包名称的内容粘贴到"替换"部分。
  5. 单击"查找"(还没有单击"替换")。
  6. 现在点击“查找”会列出所有可用的包名称,如果您对此满意,则从第3步重复此过程,但这次单击“替换”。
  7. 重新构建您的项目并玩得开心!
结论:一个简单的查找和替换程序就可以解决这个问题,我强烈推荐使用Sublime Text 3。

2
需要按照@diegoveloper的建议更新文件路径。我们无法通过搜索来查找路径。 - Rahmat Ali

3
在尝试了上述所有方法后,使用Android Studio重命名flutter包对我来说非常简单:
步骤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">

复制 包名 并按照第一步的方式重命名 AndroidManifestbuild.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 {

更改目录名称。 详情请参见以下链接this

从:

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

到:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接