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

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


当前回答

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

https://pub.dev/packages/rename

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

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

其他回答

使用此插件(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

安卓

在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方面的帮助。

更新:

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

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

在你的构建中也是如此。应用程序文件夹内的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

To:

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

编辑:12月18日

对于包名,只需在build build中更改即可。它只

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

为iOS

从你的信息中更改包标识符。plist文件在你的ios/Runner目录。

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

更新

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

flutter create --org com.yourdomain appname

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

应用程序- > src - - > >主要yourOldFolderName

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

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

捷径:

全局搜索- ctrl+shift+f

更换包装

文件搜索- ctrl+f

修改导入包名称

更改pubspec中的name属性。Yaml(第一行)

对于apk的名称,修改AndroidManifest.xml中的android:label