是否有办法更改Flutter项目的Package Name ?
我想在flutter项目中更改包名和应用名。
在pubspec.yaml中更改name属性(第1行)
pubspec.yaml
name
对于apk的名称,在AndroidManifest.xml中更改android:label
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文件中
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)
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
编辑:12月18日
对于包名,只需要在构建build.gradle中更改即可
为iOS
从ios/Runner目录中的Info.plist文件更改bundle标识符。
ios/Runner
Info.plist
<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中,包名是Info.plist中的包标识符:
<key>CFBundleIdentifier</key> <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
它在Runner.xcodeproj / project.pbxproj中找到:
PRODUCT_BUNDLE_IDENTIFIER = com.example.appname;
包名在不止一个位置,因此要更改名称,您应该在整个项目中搜索旧项目名的出现情况并全部更改它们。
Android Studio和VS Code:
感谢diegoveloper为iOS提供帮助。
在回到这个页面几次之后,我认为用正确的名称开始一个新项目,然后复制旧文件会更容易、更干净。
手动更改名称似乎不起作用,抛出gradle错误,在我的情况下,它确实抛出错误。
所以我通常会创建一个新的颤振项目
我使用下面提到的命令创建一个新的扑动应用程序
你的项目的包名是->com.yourdomain.appname
com.yourdomain.appname
如果你只是想保持你的包名为com.appname,那么做一些改变如下所示
com.appname
flutter create --org com appname
添加java而不是kotlin为android添加-a java
kotlin
android
-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
flutter clean
这是我如何重命名包为ios和android
applicationId "com.company.name"
app/src/main
package="com.company.name"
android:label="App Name"
app/src/debug
app/src/profile
app/src/main/kotlin/com/something/something/MainActivity.kt
app/src/main/kotlin/
app/src/main/kotlin/com/company/name/
name: something
name: name
com.abc.xyz
name: xyz
com.company.name
关于Visual Studio代码
在“文件”中编辑> Replace
在Android studio上
1. 右键单击您的项目>替换路径
2. 写你的旧包和新包>替换全部
根据官方的flutter文档,你只需要更改app/build.gradle目录下的ApplicationId。然后你只需要构建你的apk, manifest文件的包名将根据你在build.gradle中更改的ApplicationId更改。因为颤振,而建立apk和谷歌发挥都考虑ApplicationId从build.gradle。这个解决方案对我很有效。
app/build.gradle
ApplicationId
来源:官方文档
对于那些像我这样不喜欢更改特定文件的人,我使用了https://pub.dev/packages/rename。
使用这个,你只需要在你的终端上运行这些命令,你的应用名称和标识符就会被改变。酒吧全球运营
安装:pub global activate rename
pub global activate rename
然后,在颤振项目根目录中运行此命令。
pub global run rename --bundleId com.example.android.app --target android
在Android系统中,修改应用程序id为
>build.gradle
文件和iOS更改
比;来自项目设置的包名称。
即使我的答案不会被接受为正确答案,我只是觉得所有这些答案导致我有更多的问题,这里是我如何解决它
结论:一个简单的查找和替换程序就可以解决这个问题,我强烈推荐Sublime Text 3。
在尝试了以上所有的。简单的工作为我重命名包颤振与 Android工作室< / >强:
步骤1:
麦克:Command + Shift + R
Command + Shift + R
Linux / Windows: Ctrl + Shift + R
Ctrl + Shift + R
在更改为新包后,按Replace All并等待Android工作室运行完成。
Replace All
步骤2:
接下来,进入AndroidManifest.xml:
并复制package name并执行相同的步骤1,在AndroidManifest和build.gradle中重命名package。
package name
AndroidManifest
package
修改目录名称。 详细信息请参见以下链接这:
android\app\src\main\java\your\new_package\name
使用以下包更改应用程序包名称single command。它使这个过程非常简单和快速。
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
__________________________________________________________________________
对于Ios
如果你不喜欢以这种方式改变文件,那么另一种方式是使用这个包。
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 < / >强。
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
要在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,通过所有文件。
your.package.name
com.example.application
这些会弹出
替换所有这些,瞧。如果你已经构建了你的项目,许多文件将弹出在build目录下,你可以忽略这些文件,不需要改变它们
build
从Android Studio 4.1.3开始,更改包名再简单不过了。
如果您不使用Firebase或任何其他外部服务,只需更改以下文件中的包名称:
请注意:同时更改目录名(在Kotlin或Java下)。
如果您使用Firebase或任何其他外部服务,您也需要更改那里的包名称。
如果你还没有开始这个项目,这是最好的方法。
如果你已经创建了这个项目,在你的dev_dependencies中安装这个包并运行这个命令。
这将改变所有复杂的东西,改变包的名字在android。右键点击flutter的iOS文件夹,用Xcode打开。
在Xcode >select 跑步者 >在一般选项卡中,您可以更改包标识符。
如果您已经创建了一个项目,并且不知道更改包名的复杂性,那么这是最简单的方法。
我认为这不是解决这个问题的正确办法。但是您可以用您想要的包名创建一个新项目,然后从现有项目中将所有源文件复制到新项目中。
**注意:你也必须复制pubspec的所有内容。在firebase和其他api的情况下,这个解决方案可能有点冗长。
尽可能简单地使用这个change_app_package_name包首先添加依赖
dev_dependencies: change_app_package_name: lates version
然后执行这个命令
我已经对现有的包名进行了全局搜索,并使用新的包名更改了所有字段。然后改变
主要应用程序→src→→yourOldFolderName
按新包名命名的文件夹名。之后,将所有导入的包名更改为新的包名。这需要大量的手工工作,但这是值得的,没有任何问题。
注意:注意包名前的空格,它可能会给出内置错误
捷径:
全局搜索- ctrl+shift+f
更换包装
文件搜索- ctrl+f
修改导入包名称
dart pub global activate rename
在您的Flutter项目根目录中运行此文件
dart pub global run rename --bundleId com.company.appname --target android
这就是所有的东西,现在你改变了你的包名:)
使用此插件(2022年)
使用
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
使用该命令修改包名。
其中com.new.package.name是你想要的应用程序的新包名,用任何你想要的名称替换它。
在Vs Code,我所做的是搜索和替换它,它工作!就像一个符咒。
com.example.appName
重新启动vs代码。
一步一步
在pubspec.yaml文件中添加以下行:
name: <your_new_package_name>
在同一目录下,打开android文件夹。
app
用新的包名替换当前的包名。
ios
Runner.xcodeproj
打开info.plist文件。
info.plist
保存所有修改并关闭文件。
执行flutter clean命令。
最后,执行flutter pub get命令。
flutter pub get