如何在颤振中更改包名?

是否有办法更改Flutter项目的Package Name ?

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

350256 次浏览

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">

也在app文件夹内的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
  


编辑:12月18日

对于包名,只需要在构建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文件更改bundle标识符。

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

更新

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

flutter create --org com.yourdomain appname

我有两个manifest.xml文件在我的应用程序部分,所以我需要改变包的名称在both这里你可以看到

AndroidManifest.xml文件中的>更改,——> 包= " your.name.app" (app / src /调试/ AndroidManifest.xml)和 (app / src / main / AndroidManifest.xml)和(app / src / profile / AndroidManifest.xml) < / p >

好看!!

安卓

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

感谢diegoveloper为iOS提供帮助。

更新:

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

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

所以我通常会创建一个新的颤振项目

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

flutter create --org com.yourdomain appname

你的项目的包名是->com.yourdomain.appname


如果你只是想保持你的包名为com.appname,那么做一些改变如下所示

flutter create --org com appname

添加java而不是kotlinandroid添加-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

你可以通过谷歌:https://developer.android.com/studio/build/application-id.html来跟踪这个官方文档

应用程序ID应该在构建中更改。gradle,包名可以在AndroidManifest.xml中修改。

但是,在更改包名时应该谨慎。

另外,在重新上传应用程序时,应该小心,因为它与之前上传的应用程序的ID相匹配。

更新你必须在这些包中将包名更改为你想要的包名 五个位置。< / p >

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. 去建造。在app模块中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 . c
  8. 转到lib文件夹中的每个dart文件,并将导入文件重命名为修改后的名称。
  9. 打开XCode,打开runner文件,在项目资源管理器中单击runner。
  10. 转到通用->双击Bundle Identifier ->,将其重命名为com.company.name
  11. 进入信息。plist点击Bundle name ->重命名为你的应用程序名称。
  12. 打开你的flutter项目,在终端flutter clean中运行这个命令

关于Visual Studio代码

在“文件”中编辑> Replace

vs code replace in files

在Android studio上

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

replace in path

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

replace all截图

根据官方的flutter文档,你只需要更改app/build.gradle目录下的ApplicationId。然后你只需要构建你的apk, manifest文件的包名将根据你在build.gradle中更改的ApplicationId更改。因为颤振,而建立apk和谷歌发挥都考虑ApplicationId从build.gradle。这个解决方案对我很有效。

来源:官方文档

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

使用这个,你只需要在你的终端上运行这些命令,你的应用名称和标识符就会被改变。酒吧全球运营

安装:pub global activate rename

然后,在颤振项目根目录中运行此命令。

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

在Android系统中,修改应用程序id为

>build.gradle

文件和iOS更改

比;来自项目设置的包名称。

即使我的答案不会被接受为正确答案,我只是觉得所有这些答案导致我有更多的问题,这里是我如何解决它

  1. 获得Sublime Text(很疯狂,对吧?不,跟着我走就行了)
  2. 单击“文件”并选择“打开文件夹”,然后选择正在处理的项目的文件夹
  3. 现在点击“从选项卡中查找”,选择“在文件中查找”,或者直接执行Ctrl + 转变 + F(对于Windows用户,对于mac用户,你已经知道了这个操作)
  4. 现在在Find部分复制并粘贴您想要更改的包的名称,并在replace部分粘贴您想要替换的包名称。
  5. 单击FIND(不要立即单击REPLACE)。
  6. 现在单击“查找”,列出项目中符合搜索条件的所有可用软件包名称,如果您对此满意,则从“否”重复。3但是这次点击REPLACE。
  7. 重建你的项目,享受其中的乐趣

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

在尝试了以上所有的。简单的工作为我重命名包颤振与 Android工作室< / >强:

步骤1:

麦克:Command + Shift + R

Linux / Windows: Ctrl + Shift + R

在更改为新包后,按Replace All并等待Android工作室运行完成。

flutter rename package in 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类中的包(如果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。它使这个过程非常简单和快速。

颤振pub运行change_app_package_name:main com.new.package.name

https://pub.dev/packages/change_app_package_name

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

为安卓

AndroidManifest.xml开放,

  • 走这条路。

应用程序/ src / main / AndroidManifest.xml

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

enter image description here

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

enter image description here

  • 在这里输入新的包名,

enter image description here

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

__________________________________________________________________________

对于Ios

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

enter image description here

  • 选择,并双击运行在抽屉,然后选择一般

enter image description here

  • 然后,改变你的包标识符(包名)。
  • 后更改包标识符(包名),您的包名为

如果你不喜欢以这种方式改变文件,那么另一种方式是使用这个包。

https://pub.dev/packages/rename

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

使用这个,你只需要在你的终端上运行这两个命令,你的应用名称和标识符就会被改变。酒吧全球运营

最快和最干净的方法来改变你的包名!

警告:

如果你已经编辑了文件夹android /ios /windows /的内容,在继续之前,你需要确保在某个地方备份了这些更改。

1. 删除颤振项目根目录下的文件夹:

  • 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

Pub Dev上的软件包链接

 Package截图

要在flutter中更改包名,必须对所有平台执行此操作。

为了方便起见,我建议你使用< >强命名< / >强包。

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

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

这里,com.onat.networkApp是包名

针对特定平台使用"-t"选择。 例句:< / p >

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

你可以了解更多关于重命名在这里的信息

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

  • 3个AndroidManifest文件(profile, debug, main)
  • 1 build.gradle
  • <李> 1 java 或者kt文件

这些会弹出

替换所有这些,瞧。如果你已经构建了你的项目,许多文件将弹出在build目录下,你可以忽略这些文件,不需要改变它们

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

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

  1. 在构建中。Gradle (app)文件
  2. 在Manifest文件中(主文件、调试文件和概要文件)
  3. 包导入在代码文件(Android Studio。将处理更改)

请注意:同时更改目录名(在Kotlin或Java下)。

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

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

flutter create --org com.yourdomain appname

如果你已经创建了这个项目,在你的dev_dependencies中安装这个并运行这个命令。

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

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

主要应用程序→src→→yourOldFolderName

按新包名命名的文件夹名。之后,将所有导入的包名更改为新的包名。这需要大量的手工工作,但这是值得的,没有任何问题。

注意:注意包名前的空格,它可能会给出内置错误

捷径:

全局搜索- ctrl+shift+f

更换包装

文件搜索- ctrl+f

修改导入包名称

  1. 首先,在您的终端上运行此程序

    dart pub global activate rename

  2. 在您的Flutter项目根目录中运行此文件

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

这就是所有的东西,现在你改变了你的包名:)

enter image description here

使用此插件(2022年)

https://pub.dev/packages/change_app_package_name

使用

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


Old Package Name: com.example.oldname
Updating build.gradle File
Updating Main Manifest file
Updating Debug Manifest file
Updating Profile Manifest file
Project is using kotlin
Updating MainActivity.kt
Creating New Directory Structure
Deleting old directories

将更改应用程序包名称添加到您的pubspec。dev_dependencies: section中的Yaml。

dev_dependencies:

change_app_package_name: ^ 1.1.0

< p >更新依赖关系 Flutter pub get

使用该命令修改包名。

颤振pub运行change_app_package_name:main com.new.package.name

其中com.new.package.name是你想要的应用程序的新包名,用任何你想要的名称替换它。

在Vs Code,我所做的是搜索和替换它,它工作!就像一个符咒。

com.example.appName

重新启动vs代码。

enter image description here

一步一步

  1. 在您首选的IDE中打开项目文件夹。

  2. 在项目的根目录中找到pubspec.yaml文件。

  3. pubspec.yaml文件中添加以下行:

name: <your_new_package_name>

  1. 在同一目录下,打开android文件夹。

  2. 打开app文件夹,找到build.gradle文件。

  3. 用新的包名替换当前的包名。

  4. 打开ios文件夹。

  5. ios文件夹中找到Runner.xcodeproj文件。

  6. 打开info.plist文件。

  7. 用新的包名替换当前的包名。

  8. 保存所有修改并关闭文件。

  9. 执行flutter clean命令。

  10. 最后,执行flutter pub get命令。