如何在flutter中更改包名称?

时间:2018-07-26 08:43:05

标签: android dart flutter

是否可以更改Flutter项目的程序包名称?

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

25 个答案:

答案 0 :(得分:61)

对于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类中更改软件包

    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

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

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

更新

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

flutter create --org com.yourdomain appname

答案 1 :(得分:32)

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

安装:pub global activate rename

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

答案 2 :(得分:10)

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

对于apk的名称,请在android:label中更改AndroidManifest.xml

答案 3 :(得分:6)

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

来源:Official Documentation

答案 4 :(得分:5)

更改包名称的最快捷、最干净的方法!

警告:

<块引用>

如果您已编辑文件夹 android/ios/ 的内容,则需要确保在继续之前已将这些更改备份在某处。

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

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

答案 5 :(得分:5)

在Visual Studio代码上

编辑>在文件中替换

vs code replace in files

在Android Studio上

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

replace in path

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

replace all screenshot

答案 6 :(得分:2)

要在 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

您可以了解有关 renamehere

的更多信息

答案 7 :(得分:2)

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

screenshot of Package

答案 8 :(得分:1)

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

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

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

答案 9 :(得分:1)

有权更改Android和Ios的默认方式的路径。

对于Android

打开AndroidManifest.xml,

  • 去这条路。

app / src / main / AndroidManifest.xml

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

enter image description here

  • 单击重命名后,重命名popup(dialog)show。

enter image description here

  • 在此处输入新的程序包名称,

enter image description here

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

__________________________________________________________________________

用于 iOS

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

enter image description here

  • 选择,然后双击抽屉中的“转轮”,然后选择“常规”

enter image description here

  • 然后更改您的捆绑包标识符(包裹名称)。
  • 更改包标识符(包名称)后,您的包名称为 更改为Ios。

答案 10 :(得分:1)

尝试以上所有方法之后。我的简单工作是使用 Android Studio

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

并复制package name并执行相同的步骤1,以在packageAndroidManifest中重命名build.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

答案 11 :(得分:1)

这是我为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并打开运行器文件,然后在项目浏览器中单击“运行器”。
  10. 转到常规->双击捆绑标识符->将其重命名为com.company.name
  11. 转到Info.plist,然后单击捆绑包名称->将其重命名为您的应用程序名称。
  12. 关闭所有内容->转到flutter项目并在终端flutter clean中运行此命令

答案 12 :(得分:1)

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

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

答案 13 :(得分:0)

在Android中,更改其中的应用程序ID

> build.gradle

文件和iOS更改

项目设置中的

>捆绑包名称。

答案 14 :(得分:0)

使用以下软件包,用single command更改应用软件包名称。它使该过程变得非常轻松快捷。

flutter pub运行change_app_package_name:main com.new.package.name

https://pub.dev/packages/change_app_package_name

答案 15 :(得分:0)

您可以遵循Google的以下官方文档:https://developer.android.com/studio/build/application-id.html

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

但是,应谨慎更改软件包名称。

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

答案 16 :(得分:0)

如果您不喜欢以这种方式更改文件,则可以选择使用此软件包。

https://pub.dev/packages/rename

cars.filter(car => car.registered).length

使用此命令,您只需在终端中运行这两个命令,您的应用名称和标识符就会更改。pubglobal run

答案 17 :(得分:0)

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

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

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

salman_id

您的项目的软件包名称为-> flutter create --org com.yourdomain appname


如果您只想将软件包名称保留为com.yourdomain.appname,请进行如下更改

com.appname

答案 18 :(得分:0)

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

好看!!

答案 19 :(得分:0)

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

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

这些会弹出

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

答案 20 :(得分:0)

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

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

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

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

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

答案 21 :(得分:0)

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

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 > 选择 Runner > 在 general 选项卡中,您可以更改 bundle Identifier。

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

答案 22 :(得分:0)

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

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

答案 23 :(得分:0)

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

 dev_dependencies: 
  change_app_package_name: ^lates version

然后运行这个命令

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

答案 24 :(得分:-1)

我的应用程序部分中有两个manifest.xml文件,因此我需要同时更改两个软件包的名称Here you can see