有什么方法可以更改 Flutter 项目的包名称吗?
我想在颤振项目中更改包名和应用程序名。
对于 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">
同样在您的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 年 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
手动更改名称似乎不起作用,会引发 gradle 错误,在我的情况下它确实会引发错误。
所以我通常会新建一个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
编辑
如果您已经创建了一个项目,您可以使用change_app_package_name包来更改包名。
flutter pub run change_app_package_name:main com.package.appname
对于像我这样不喜欢更改特定文件的人,我使用了https://pub.dev/packages/rename。
使用它,您只需在终端中运行这些命令,您的应用程序名称和标识符将被更改。pub 全局运行
安装:pub global activate rename
然后,在你的颤振项目根目录中运行这个命令。
pub global run rename --bundleId com.example.android.app --target android
在 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 代码:
感谢diegoveloper对 iOS 的帮助。
在多次返回此页面后,我认为用正确的名称开始一个新项目然后复制旧文件会更容易和更清晰。
这就是我为 ios 和 android 重命名包的方式
applicationId "com.company.name"
app/src/main
并重命名package="com.company.name"
和android:label="App Name"
app/src/debug
并重命名package="com.company.name"
app/src/profile
并重命名package="com.company.name"
app/src/main/kotlin/com/something/something/MainActivity.kt
并重命名package="com.company.name"
app/src/main/kotlin/
并重命名每个目录,使结构看起来像app/src/main/kotlin/com/company/name/
pubspec.yaml
您的项目并更改name: something
为name: name
,例如:-如果包名称com.abc.xyz
是name: xyz
com.company.name
flutter clean
更改 (第 1 行)name
中的属性pubspec.yaml
对于 apk 的名称,更改android:label
为AndroidManifest.xml
尽可能简单地使用这个change_app_package_name包首先添加依赖
dev_dependencies:
change_app_package_name: any
然后运行这个命令
flutter pub run change_app_package_name:main com.new.package.name
如果您没有启动项目,这是最好的方法。
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 > 选择Runner > In general选项卡中,您可以更改包标识符。
如果您已经创建了一个项目并且不知道更改包名称的复杂性,这是最简单的方法。
根据官方的颤振文档,您只需要更改ApplicationId
inapp/build.gradle
目录。然后你只需要构建你的 apk 并且清单文件的包名将根据ApplicationId
你在build.gradle
. 由于在构建 apk 和 google play 时出现颤振,都ApplicationId
从 build.gradle 考虑。这个解决方案对我有用。
来源:官方文档
更改 Flutter 项目的所有AndroidManifest.xml文件, --> package="your.name.app " (app/src/debug/ AndroidManifest.xml ) 和 (app/src/main/ AndroidManifest.xml ) 和 (app /src/profile/AndroidManifest.xml ) _
好看 !!
更改包裹名称的最快和最干净的方法!
如果您已编辑文件夹android/、ios/和windows/的内容,则需要确保在继续之前将这些更改备份到某处。
1. 删除你的flutter项目根目录下的文件夹:
android/
ios/
windows/
build/
假设您想从 to 重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 *
更新您必须在这五个位置将包名称更改为所需的包名称。
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
更改 Android 和 Ios 的默认路径的权利。
安卓版
打开 AndroidManifest.xml,
应用程序/src/main/AndroidManifest.xml
__________________________________________________________________________
对于iOS
single command
使用以下包更改应用程序包名称。它使该过程非常简单和快速。
颤振 pub 运行 change_app_package_name:main com.new.package.name
change_app_package_name
使用包轻松更改应用包名称只需在 dev 依赖项中添加上述包
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
简单的方法,在编辑器中搜索 EgVS CODE your.package.name
Egcom.example.application
通过所有文件。,
这些会弹出
替换所有这些,瞧。如果您已经构建了项目,目录中会弹出大量文件build
,您可以忽略这些文件,无需更改这些文件
在尝试了以上所有方法之后。我用 Android Studio重命名包颤振的简单工作:
步骤1:
苹果电脑:Command + Shift + R
Linux/Windows:Ctrl + Shift + R
更改为新包后,按下Replace All
并等待Android Studio运行完成。
第2步:
接下来,转到AndroidManifest.xml
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="your.package.name">
并复制package name
并执行相同的步骤 1 以package
在AndroidManifest
和中重命名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 {
更改目录名称。有关详细信息,请参阅以下链接:
从:
android\app\src\main\java\com\example\name
至:
android\app\src\main\java\your\new_package\name
即使我的答案不会被接受为正确答案,我只是觉得上面所有这些答案都让我遇到了更多问题,这就是我解决它的方法
结论:一个简单的查找和替换程序就可以解决这个问题,我强烈推荐 Sublime Text 3。
从 Android Studio 4.1.3 开始,更改包名称再简单不过了。
如果您不使用 Firebase 或任何其他外部服务,只需更改这些文件中的包名称:
注意:还要更改目录名称(在 Kotlin 或 Java 下)。
如果您使用 Firebase 或任何其他外部服务,您也需要在那里更改包名称。
如果您不喜欢以这种方式更改文件,那么另一种方法是使用此包。
rename --bundleId com.newpackage.appname
pub global run rename --appname "Your New App Name"
使用它,您只需在终端中运行这 2 个命令,您的应用程序名称和标识符将被更改。pub 全局运行
在Android中,更改应用程序ID
> 构建.gradle
文件和 iOS 更改
> 项目设置中的捆绑包名称。
我已经对现有的包名进行了全局搜索,并用新的包名更改了所有字段。然后变了
app->src->main->yourOldFolderName
根据新包名称的文件夹名称。之后,将所有导入的包名称更改为新的包名称。这是很多手工工作,但值得,没有任何问题。
注意:注意包名前的空格,它可能会产生构建错误
捷径:
全局搜索 - ctrl+shift+f
更换包裹
文件搜索 - ctrl+f
更改导入包名称
我认为这不是解决问题的正确方法。但是您可以使用所需的包名称创建一个新项目,然后将所有源文件从现有项目复制到新项目。
**注意:您也必须复制 pubspec 的所有内容。对于 firebase 和其他 API,该解决方案可能有点冗长。
您可以按照 Google 的官方文档:https ://developer.android.com/studio/build/application-id.html
应用 ID 应该在 Build.gradle 中更改,而包名可以在 AndroidManifest.xml 中更改。
但是,应该小心更改包名称。
同样,在重新上传应用程序时,应该小心,因为它会将先前上传的应用程序的应用程序 ID 与新上传的应用程序匹配。