如何为Flutter桌面应用更改应用图标和应用名称?

16

我正在使用Flutter开发Windows桌面应用程序,但不知道如何更改应用程序的名称和图标。


这个回答解决了你的问题吗?如何为Flutter更改桌面Windows应用程序图标? - smorgan
5个回答

24

我认为我已经找到了解决方案。下面应该适用于Windows应用程序:

更改应用程序图标: 只需把图标文件放在windows/runner/resources文件夹下,并将windows\runner\Runner.rc文件中的IDI_APP_ICON部分更改为您的图标文件名。

更改应用程序名称:打开windows/runner/main.cpp文件,然后在window.CreateAndShow函数内更改您的应用程序名称。


你已经描述了如何更改窗口标题,但是你的问题是关于应用程序名称的。你到底想要改变什么? - smorgan
1
你想改变图标文件名的原因是什么,而不是只替换现有的图标文件? - smorgan
如何在flutterapp\build\windows\runner\Release中更改exe的名称? - Matteo Toma
要更改构建名称。请导航至 Windows/CMakeLists.txt,并更新 set(BINARY_NAME "ANYNAME")。 - kamalraj venkatesan

6
这是如何更改Windows应用程序的图标和名称。

应用程序图标

只需将文件app_icon.ico替换为您的新图标,放在windows/runner/resources目录下。

如果名称已更改,请在文件windows\runner\Runner.rc中将app_icon.ico重命名为您的新文件名:

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDI_APP_ICON            ICON                    "resources\\app_icon.ico"

应用名称

事情变得有点复杂。在Windows中,没有所谓的“应用名称”。您可以更改窗口的名称、输出可执行文件的名称、在任务管理器中显示的名称...

假设您的项目名称是oldbadname。您应该在以下所有文件中将oldbadname替换为yournewname,并将Old Bad Name替换为Your New Name

windows/runner/Runner.rc

BEGIN
    VALUE "CompanyName", "com.company" "\0"
    VALUE "FileDescription", "Old Bad Name" "\0"
    VALUE "FileVersion", VERSION_AS_STRING "\0"
    VALUE "InternalName", "Old Bad Name" "\0"
    VALUE "LegalCopyright", "Copyright (C) 2023 com.company. All rights reserved." "\0"
    VALUE "OriginalFilename", "oldbadname.exe" "\0"
    VALUE "ProductName", "Old Bad Name" "\0"
    VALUE "ProductVersion", VERSION_AS_STRING "\0"
END

windows/CMakeLists.txt(而不是windows/runner/CMakeLists.txt)

set(BINARY_NAME "foldername")

windows/runner/main.cpp

if (!window.Create(L"Old Bad Name", origin, size)) {
    return EXIT_FAILURE;
}

就是这样!


1
不要改变 set(BINARY_NAME "oldbadname"),这会导致 CMake 错误。二进制文件名应该与项目文件夹名字相同。 - Ahmed.Net
1
不要更改 set(BINARY_NAME "oldbadname") 这会导致 cmake 错误。二进制文件名应该与项目文件夹名相同。 - undefined
1
是的,更改这个并不起作用,但是代码中的注释说你可以更改它: # 创建应用程序的可执行文件的名称。更改此处以更改应用程序在磁盘上的名称。 set(BINARY_NAME "app_name") 要么注释是错误的,要么你还需要更改其他内容才能使其起作用。 - Umut
3
在进行这些更改后,我还需要执行flutter clean来重新构建它。 - Bennik2000
修改 set(BINARY_NAME "oldbadname") 会导致 CMake 错误。 运行 flutter clean 可以修复这个错误。 - JamesRobert
我应该删除 windows/CMakeLists.txt 中的行 set(BINARY_NAME "foldername") 吗? - Jack'

4

在你的void main()函数中加入以下内容:

void main() {
WidgetsFlutterBinding.ensureInitialized();
  if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) {
    setWindowTitle('title here');
  }
  runApp(new MyApp());
}

为了让这个功能正常工作,请在pubspec.yaml中包含此依赖项:

window_size:
    git:
      url: git://github.com/google/flutter-desktop-embedding.git
      path: plugins/window_size
      ref: 7812516a5c1fc8ef379e244106953a2b534432b9

1
要为Windows更改Flutter项目名称,请按照以下简单步骤操作:
打开项目中的以下文件:windows/runner/Runner.rc
BEGIN
VALUE "CompanyName", "com.example" "\0"
VALUE "FileDescription", "NameApp" "\0"
VALUE "FileVersion", VERSION_AS_STRING "\0"
VALUE "InternalName", "NameApp" "\0"
VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights 
reserved." "\0"
VALUE "OriginalFilename", "NameApp.exe" "\0"
VALUE "ProductName", "NameApp" "\0"
VALUE "ProductVersion", VERSION_AS_STRING "\0"
END

将所有出现的NameApp替换为您新的期望名称,比如NewNameApp。
在您的项目中打开以下文件:windows/runner/main.cpp。
if (!window.CreateAndShow(L"NameApp", origin, size)) {
  return EXIT_FAILURE;
}

将“NameApp”替换为“NewNameApp”。
保存更改,关闭文件,然后再次运行您的应用程序。

-2

这个显示如何更改应用程序名称吗? - starball
更改应用程序名称:您可以在此文件中修改应用程序名称 - windows/runner/Runner.rc - Ashvin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接