如何在flutter中更改包名称?


155

有什么方法可以更改Flutter项目的程序包名称吗?

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


4
只需搜索并替换所有文件中所有出现的旧软件包名称即可。尚无命令或类似名称来更新名称。
君特Zöchbauer

3
创建新项目时,可以使用flutter create --org com.domain app_name
Victor

Answers:


284

对于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

编辑日期:18-Dec-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

1
我也必须更新下面的目录名称(将“ example”更改为“ woods”)C:\ Users \ andytwoods \ IdeaProjects \ gear_log \ android \ app \ src \ main \ java \ com \ woods \ gearlog
andyw

1
iOS版呢?
Suragch

9
我的捆绑包标识符是$(PRODUCT_BUNDLE_IDENTIFIER)。该变量隐藏在哪里?
Suragch

3
PRODUCT_BUNDLE_IDENTIFIER存储在ios / Runner.xcodeproj目录的project.pbxproj文件的多个位置。
萨法阿莱

3
值得一提的是,appID必须采用3个单词的格式,并以点分隔。
Raj Krishnan R

23

手动更改名称似乎不起作用,会引发gradle错误,就我而言,它确实会引发错误。

所以我通常创建一个新的flutter项目。

我使用下面提到的命令来创建新的Flutter应用

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

而且它也非常快
-griffins

2
'Flutter创建--org com.yourcompany --project-name new_app_name。' (如果您在现有项目中,请添加句点-您应先将android和ios文件夹删除,然后重新生成它们)。进行备份应该是答案的重要前提。
Tommie C.

20

安卓系统

在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提供的帮助。

更新:

回到该页面几次之后,我认为以正确的名称开始一个新项目,然后复制旧文件会更容易,更干净。


19

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

对于apk的名称,请android:labelAndroidManifest.xml


1
需要更改MainActivity.java或mainActivity.kt
Epsi95,

18

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

安装: pub global activate rename

然后,运行: pub global run rename --bundleId com.example.android.app --target android


7

这就是我为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: somethingname: name,例如:-如果程序包名称为com.abc.xyzname: xyz
  8. 转到lib文件夹中的每个dart文件,然后将导入重命名为修改后的名称。
  9. 打开XCode并打开运行器文件,然后在项目浏览器中单击“运行器”。
  10. 转到常规->双击捆绑标识符->将其重命名为 com.company.name
  11. 转到Info.plist,单击捆绑名称->将其重命名为您的应用名称。
  12. 关闭所有内容->转到flutter项目并在终端中运行此命令 flutter clean

6

更改Flutter Project的所有AndroidManifest.xml文件-> package =“ your.name.app ”(app / src / debug / AndroidManifest.xml)和(app / src / main / AndroidManifest.xml)和(app / src / profile / AndroidManifest.xml

好看 !!


谢谢珀西我遇到了这个问题,我找到了你的答案。
开发人员

3

已更新您必须在这五个位置将软件包名称更改为所需的软件包名称。

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


3

在Visual Studio代码上

编辑>替换为文件

vs代码替换文件

在Android Studio上

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

替换路径

2.编写旧软件包和新软件包>全部替换

替换所有屏幕截图


天哪,你就是最好的
N Sivaram

3

根据官方flutter文档,您只需要更改ApplicationIdin app/build.gradle目录。然后,您只需要构建apk,清单文件的包名称将根据ApplicationId您更改的名称而更改build.gradle。由于在构建apk和Google Play时会出现抖动,请同时考虑ApplicationId从build.gradle开始。这个解决方案对我有用。

资料来源:官方文件


1

我的应用程序部分中有两个manifest.xml文件,因此我需要在两个文件中都更改软件包名称在这里你可以看到




0

即使我的答案不会被接受为正确的答案,我只是觉得以上所有这些答案使我遇到了更多问题,这是我如何解决的

  1. 获取Sublime Text(疯狂,对吗?不,只需按照我的步骤进行)
  2. 单击文件并选择打开的文件夹,然后选择您正在处理的项目的文件夹
  3. 现在,从选项卡中单击“查找”,然后选择“在文件中查找”或执行Ctrl+ Shift+ F (对于Windows用户,对于Mac用户,您已经知道此演练)
  4. 现在,在“查找”部分中精确复制并粘贴您要更改的软件包的名称,并在“替换”部分粘贴您要替换的软件包名称。
  5. 单击查找(暂时不要单击替换)。
  6. 现在,单击查找会列出项目中与搜索条件相匹配的所有可用软件包名称,如果对此感到满意,请从否重复。3,但这一次单击REPLACE。
  7. 重建您的项目并享受乐趣

结论:解决这个问题只需要一个简单的查找和替换程序,因此我强烈建议您使用Sublime Text 3。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.