ChatGPT解决这个技术问题 Extra ChatGPT

如何使用 Flutter 更改应用显示名称构建?

我已经使用 Flutter create testapp 创建了该应用程序。现在,我想将应用名称从“testapp”更改为“My Trips Tracker”。我怎样才能做到这一点?

我尝试从 AndroidManifest.xml 进行更改,但它已更改,但 Flutter 提供了一种方法来做到这一点吗?

清单是更改设置应用程序中显示的名称和启动器图标上显示的名称的唯一方法。
对于视觉人士,此视频将向您展示整个过程youtube.com/watch?v=05twEATiS44
使用插件,它简单、快速、安全,并且已经过社区测试,flutter_app_name 包是一个很好的选择,并且支持 null 安全性。另一个推荐的包是 flutter_launcher_name,但基本上 flutter_launcher_name 不支持 null 安全,请检查 Null safety support

C
Community

安卓

打开 AndroidManifest.xml(位于 android/app/src/main

<application
    android:label="App Name" ...> // Your app name here

iOS

打开 info.plist(位于 ios/Runner

<key>CFBundleName</key>
<string>App Name</string> // Your app name here

别忘了跑

flutter clean
flutter pub get

对于 Android,这不起作用。试图从 <OldName>到 <NewName>,错误消息是:Manifest merger failed : Attribute application@label value=(OldName) from AndroidManifest.xml:21:9-32 is also present at AndroidManifest.xml:21:9-32 value=(NewName).。你有什么建议??
您的项目中可能有多个 AndroidManifest.xml 文件,您必须打开位于 android/app/src/main 的文件。
这似乎与最新的 IOS 更新和/或 Catalina 更新和/或 Flutter 更新有关。我不知道。现在更改此设置会中断部署,因为它将 .app 文件夹从一致的 Runner.app 重命名为您输入的显示名称,然后“flutter run”中断。现在,如果要更改它,请在 YAML 文件中命名 name: 键,然后对包名称进行全局搜索/替换。 (叹)
@ChrisH 我正在运行所有更新版本,它确实按预期工作。
@Fethi 这只是您项目的名称。对于名称,您必须编辑 AndroidManifest.xml 文件(在 Android 中)和 info.plist(在 iOS 中)。 Flutter docs 也提到了它。
H
Hasan El-Hefnawy

更新:从评论来看,这个答案似乎已经过时了

Flutter 文档指出了您可以在哪里更改 Android 和 iOS 应用程序的显示名称。这可能是您正在寻找的:

准备要发布的 Android 应用程序

准备发布 iOS 应用

安卓版

您似乎已经在 AndroidManifest.xml 中作为 application 条目找到了它。

查看位于 /android/app/src/main/ 中的默认 App Manifest 文件 AndroidManifest.xml 并验证值是否正确,尤其是: 应用程序:编辑应用程序标签中的 android:label 以反映应用程序的最终名称。

对于 iOS

请参阅 Review Xcode project settings 部分:

导航到 Xcode 中的目标设置:在 Xcode 中,打开应用程序 ios 文件夹中的 Runner.xcworkspace。

要查看应用程序的设置,请在 Xcode 项目导航器中选择 Runner 项目。然后,在主视图侧边栏中,选择 Runner 目标。

选择常规选项卡。接下来,您将验证最重要的设置: 显示名称:要在主屏幕和其他地方显示的应用程序的名称。


是的,谢谢你的回答。我知道这样做的本地方法。我只是想知道颤振是否从一个点处理它。
这些是执行此操作的本机方法。我想知道颤振是否从单点处理它?
@AshtonThomas我可以更改它,但是在清理重建等之后,运行器应用程序会重置它的值,我该如何保留它?(据我所知,运行器项目是在清理构建后重新创建的)
如果您在运行程序项目中更改显示名称,它将停止工作。必须是 'Runner' 显然,只需要更改 pubspeck.yaml 文件上的名称和版本数据,如果 android 和 ios 应用程序有不同的版本或名称本地化,这很不方便
对于 iOS,这是不正确的。应该更改 Info.plist 中的 CFBundleName。 Flutter 不会找到该应用程序,因为它会寻找 Runner.app,如果您在 Xcode 中更改它,则不再是这种情况。
S
Simon

有一个名为 flutter_launcher_name 的插件。

编写文件 pubspec.yaml:

dev_dependencies:
  flutter_launcher_name: "^0.0.1"

flutter_launcher_name:
  name: "yourNewAppLauncherName"

并运行:

flutter pub get
flutter pub run flutter_launcher_name:main

您可以获得与编辑 AndroidManifest.xmlInfo.plist 相同的结果。


好的!我会测试插件。但据我所知,如果您将 info.plist 文件中的显示名称从“Runner”更改为,该应用程序将停止编译。它必须是“跑步者”。
抱歉,它不起作用。正如 Dpedrinha 所说,它必须是“Runner”。
它对我有用。但我需要删除应用程序并在运行后重新安装:flutter pub run flutter_launcher_name:main
还有一个插件可以替换图标 pub.dev/packages/flutter_launcher_icons
该插件未针对 Flutter 2.0 进行更新并且存在依赖问题
j
jessi

您可以在 iOS 中更改它,而无需打开 Xcode,方法是将 project/ios/Runner/info.plist <key>CFBundleDisplayName</key> 编辑为您想要的字符串作为您的名称。

FWIW - 我对在 Xcode 和 Flutter 中进行更改感到沮丧,所以我在打开 Xcode 之前开始提交所有更改,这样我就可以看到更改在 Flutter 项目中的位置。


P
Peter Mortensen

查看位于 /android/app/src/main 中的默认应用清单文件 AndroidManifest.xml

将 android:label 编辑为所需的显示名称


K
Kab Agouda

有几种可能性:

1-使用包:

我建议您使用 flutter_launcher_name,因为命令行工具可以简化更新 Flutter 应用程序启动器名称的任务。

用法:

将 Flutter Launcher 名称配置添加到 pubspec.yaml 文件中:

dev_dependencies:
  flutter_launcher_name: "^0.0.1"

flutter_launcher_name:
  name: "yourNewAppLauncherName"

设置好配置后,剩下要做的就是运行包。

flutter pub get
flutter pub run flutter_launcher_name:main

如果你使用这个包,你不需要修改文件 AndroidManifest.xml 或 Info.plist。

2- 编辑 Android 的 AndroidManifest.xml 和 iOS 的 info.plist

对于 Android,编辑文件夹中 AndroidManifest.xml 文件中 application 标记中的 only android:label 值: android/app/src/main

代码:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="Your Application Name"  //here
        android:icon="@mipmap/ic_launcher">
        <activity>
        <!--  -->
        </activity>
    </application>
</manifest>

截屏:

https://i.stack.imgur.com/FD9bD.png

对于 iOS编辑文件夹 {1 中的文件 Info.plistString 标记内的值} 。

代码:

<plist version="1.0">
<dict>
    <key>CFBundleName</key>
    <string>Your Application Name </string>  //here
</dict>
</plist>

截屏:

https://i.stack.imgur.com/e6hpu.png

如果您遇到问题,请执行 flutter clean 并重新启动您的应用程序。


P
Peter Mortensen

您可以通过编辑文件 *project/ios/Runner/info.plist 在 iOS 中更改它而无需打开 Xcode。将 <key>CFBundleDisplayName</key> 设置为您希望用作姓名的字符串。

对于 Android,请从 Android 文件夹中的 AndroidManifest.xml 文件 android/app/src/main 中更改应用名称。让 android 标签引用您喜欢的名称,例如,

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    <application
        android:label="test"
        // The rest of the code
    </application>
</manifest>

标签 application 不应该在 android:label="test" 之后关闭吗?还是所有“其余代码”(XML)属性?
是的,它应该在所有标签之后最后关闭,因为它是所有标签的父级
M
Max00355

这里的一些答案建议使用包 flutter_launcher_name,但是这个包不再被维护,并且会导致新的 Flutter 2.0 项目中的依赖问题。

插件 flutter_app_name (https://pub.dev/packages/flutter_app_name) 是一个几乎相同的包,具有良好的 null 安全性,可与 Flutter 2.0 一起使用。

设置您的开发依赖项和您的应用程序的名称

dev_dependencies:
  flutter_app_name: ^0.1.1

flutter_app_name:
  name: "My Cool App"

在项目目录中运行 flutter_app_name

flutter pub get
flutter pub run flutter_app_name

您的启动器现在将具有“My Cool App”的名称。


s
shirsh shukla

您可以通过更新 Android 和 iOS 的名称来更改应用程序名称

安卓版

只需打开 AndroidManifest.xml 文件,

进入 android>app>src>main>AndroidManifest.xml

https://i.stack.imgur.com/TAwXW.jpg

所以我的应用程序名称是“演示”所以,我将更新标签值。

与 iOS 相同,只需通过以下方式打开 Info.plist 文件,

进入 ios>Runner>Info.plist

https://i.stack.imgur.com/45gB5.jpg

并更改此字符串值。


m
mikeyman22

一个问题是,在 iOS 设置 (iOS 12.x) 中,如果您更改显示名称,它会将 iOS 设置中的应用名称和图标保留为旧版本。


对我有什么帮助:转到“信息”选项卡并更改“捆绑包名称”。
P
Peter Mortensen

对于 Android,更改 Android 文件夹中的应用名称。在 AndroidManifest.xml 文件中,在文件夹 android/app/src/main 中,让 android 标签引用您喜欢的名称,例如,

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    <application
        `android:label="myappname"`
        // The rest of the code
    </application>
</manifest>

backticks 应该真的存在吗?
P
Peter Mortensen

自 2019 年 12 月 21 日起,您需要在文件 pubspec.yaml 中更改名称 [NameOfYourApp]。然后转到菜单编辑→查找→替换路径,并替换所有出现的你以前的名字。

此外,为了更好地衡量,更改您的 android 目录中的文件夹名称,例如 android/app/src/main/java/com/example/yourappname。

然后在控制台中,在应用程序的根目录中,运行

flutter clean

我想知道您如何将显示名称与所有空格、西里尔字母等放在 pubspec 中。
M
Muhammad Ibtihaj Naeem

首先重命名您的 AndroidManifest.xml 文件

android:label="Your App Name"

第二在 Pubspec.yaml 文件中重命名您的应用程序名称 name: Your Application Name

第三次更改您的应用程序徽标

flutter_icons:
   android: "launcher_icon"
   ios: true
   image_path: "assets/path/your Application logo.formate"

第四轮

flutter pub pub run flutter_launcher_icons:main

T
Tarik Hacialiogullari

嗨,我确实看到了手动解决方案(转到 IOS 和 Android)。但我发现了一个插件,它可以从一个位置更改名称:

https://pub.dev/packages/flutter_launcher_name

只需执行以下操作:添加到 pubspec.yaml

dev_dependencies: 
  flutter_launcher_name: "^0.0.1"
  
flutter_launcher_name:
  name: "yourNewAppLauncherName"

在终端中运行:

flutter pub get
flutter pub run flutter_launcher_name:main

完毕。


此模块的更新版本与 Flutter 2 兼容并具有 null 安全性,是 pub.dev/packages/flutter_app_name
比已发布包更新的是 repo 本身:github.com/f-prime/flutter_app_name 其中包括更改以支持设置 bundleId (iOS) / applicationId (android),这要归功于 PR1
M
Moaz El-sawaf

您可以使用 rename 包轻松完成此操作,它可以帮助您针对不同平台更改 Flutter 项目的 AppName 和 BundleId,目前可用于 IOS、Android、macOS 和 Web

要安装软件包,请运行以下命令:

pub global activate rename

要重命名应用程序,请使用以下命令:

pub global run rename --appname "Your App Name"

而已!

您可以查看软件包的 documentation 以了解完整的详细信息,因为它具有一些不错的功能来选择目标平台等等。


P
Peter Mortensen

文档中明确提到了iOS和Android的改名方式,如下:

构建和发布 Android 应用

构建和发布 iOS 应用

但是,在 iOS 的情况下,您将 Display NameXcode 更改后,您无法像 flutter run 那样以 Flutter 方式运行应用程序。

因为 Flutter 运行期望应用名称为 Runner。即使你在 Xcode 中更改名称,它也不起作用。

因此,我将其修复如下:

移动到 Flutter 项目中的位置 ios/Runner.xcodeproj/project.pbxproj,找到并用 Runner 替换新名称的所有实例。

然后一切都应该以 flutter run 的方式工作。

但不要忘记在下次发布时更改名称显示名称。否则,App Store 会拒绝您的姓名。