【问题标题】:How can I change the app display name build with Flutter?如何使用 Flutter 更改应用显示名称构建?
【发布时间】:2018-08-27 10:28:43
【问题描述】:

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

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

【问题讨论】:

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

标签: android ios flutter dart application-name


【解决方案1】:

安卓

打开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

【讨论】:

  • 对于 Android,这不起作用。尝试从 更改为 ,错误消息为: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 也提一下。
【解决方案2】:

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

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

适用于安卓

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

查看默认的 App Manifest 文件 AndroidManifest.xml 位于 /android/app/src/main/ 并验证值是否正确, 特别是:

application:编辑 application 标记中的 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 中更改它,则不再是这种情况。
【解决方案3】:

有一个插件叫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更新,存在依赖问题
【解决方案4】:

您可以在 iOS 中更改它,而无需打开 Xcode,只需将 project/ios/Runner/info.plist &lt;key&gt;CFBundleDisplayName&lt;/key&gt; 编辑为您想要作为名称的字符串。

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

【讨论】:

    【解决方案5】:
    • 查看默认应用清单文件AndroidManifest.xml,位于&lt;app dir&gt;/android/app/src/main

    • android:label 编辑为您想要的显示名称

    【讨论】:

      【解决方案6】:

      默认情况下,安装 Flutter 应用时,启动器上的应用名称是您的 Flutter 项目名称。要在 Android 或 iOS 上将其更改为所需的应用程序名称,您需要分别更改 AndroidManifest.xmlInfo.plist。这是实现此目的的两种方法

      1 按插件

      您可以使用颤振rename 插件。它可以帮助您针对不同平台更改您的 Flutter 项目的 AppName 和 BundleId,目前仅适用于 iOSAndroidma​​cOS

      您可以按照以下步骤更改 bundleIdappName

      默认用法如果你不传递 -t 或 --target 参数,它将尝试重命名flutter项目中所有可用的平台项目文件夹。

      在您的 Flutter 项目根目录中运行此命令。

      pub global run rename --bundleId com.onatcipli.networkUpp
      pub global run rename --appname "Test App Name"
      

      如果你想直接运行命令(不使用 pub global run)自定义用法,请确保你 add system catche bin directory to your path

      rename --appname yourappname -t ios
      

      pub global run rename --appname yourappname --target macOS
      

      要针对特定​​平台,请使用“--target”选项。例如

      pub global run rename --bundleId com.example.android.app --target android
      

      2 手动

      适用于 Android

      App Name 反映在 Android>src>main>Androidmanifest.xml Android manifest 中的 label name 负责给出 Android Application 的 App Name

      转到AndroidManifest.xml,找到&lt;application&gt; tag。将其android:label 属性更改为您想要的应用名称。

      导航到:android/app/src/main/AndroidManifest.xml

      现在可以修改 Androidmanifest.xml。选择

      <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="YourAppName"
        android:icon="@mipmap/ic_launcher">
      

      对于包名

      <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="your.package.name">
      

      这部分代表实际的 Android 文件命名系统。可以在此处控制启动器图标和应用程序名称等重要信息。修改android:label 仅更改应用名称。

      适用于 iOS

      对于 iOS,打开 info.plist。更改 CFBundleName(包名称)。

      转到 Xcode 项目文件夹并打开 Info.plist 进行编辑(在 Xcode 中,您可以在文件上下文菜单中选择 Open As > Source Code)。我们只需要编辑key CFBundleName 的值。这是捆绑包的用户可见的短名称。

      导航到:project/ios/Runner/Info.plist

      找到CFBundleName &lt;key&gt;。这表示保存应用程序名称的键。现在可以通过修改其下方的&lt;String&gt; &lt;/String&gt;来更改应用名称。

      <key>CFBundleName</key>
      <string>YouAppName</string>
      

      就是这样。通过进行这些更改,可以在设备上安装应用程序时在启动器中更新应用程序名称。您的新应用名称现在将显示在您的手机上。

      【讨论】:

        【解决方案7】:

        有几种可能:

        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.xmlInfo.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>
        

        截图:

        对于 iOS编辑 Info.plist 文件中 String 标记内的值文件夹ios/Runner .

        代码:

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

        截图:

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

        【讨论】:

          【解决方案8】:

          您可以通过编辑文件 *project/ios/Runner/info.plist 在 iOS 中更改它而无需打开 Xcode。将&lt;key&gt;CFBundleDisplayName&lt;/key&gt; 设置为您想要的字符串。

          对于 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) 属性?
          • 是的,它应该在所有标签之后最后关闭,因为它是所有标签的父级
          【解决方案9】:

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

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

          1. 设置开发依赖项和应用名称
          dev_dependencies:
            flutter_app_name: ^0.1.1
          
          flutter_app_name:
            name: "My Cool App"
          
          1. 在项目目录中运行flutter_app_name
          flutter pub get
          flutter pub run flutter_app_name
          

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

          【讨论】:

            【解决方案10】:

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

            【讨论】:

            • 对我有什么帮助:转到“信息”选项卡并更改“捆绑包名称”。
            【解决方案11】:

            对于 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>
            

            【讨论】:

            【解决方案12】:

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

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

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

            flutter clean
            

            【讨论】:

            • 我想知道您如何在 pubspec 中使用所有空格、西里尔字母等显示名称。
            【解决方案13】:

            第一 重命名您的 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
            

            【讨论】:

              【解决方案14】:

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

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

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

              因此,我将其修复如下:

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

              那么一切都应该以flutter run 的方式工作。

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

              【讨论】:

                猜你喜欢
                • 2019-02-27
                • 2021-10-07
                • 1970-01-01
                • 2017-08-08
                • 1970-01-01
                • 1970-01-01
                • 2014-05-11
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多