Flutter - 在iOS上构建速度非常缓慢,如何解决?

16

我有一个Flutter的应用程序。我在Mac上使用Android Studio将其以调试模式在iPhone上运行。它非常缓慢(大约需要10分钟)。如果我从xCode运行我的项目,速度要快得多-大约一分钟。

输入图像描述

这是一个“中等”项目,它使用一些Firebase包:

 firebase_messaging: ^10.0.3
 firebase_analytics: ^8.1.2
 firebase_remote_config: ^0.10.0+2
 firebase_core: ^1.3.0

但我在网络上没有发现任何与这些插件相关的问题,只有针对cloud_firestore的问题。

我该如何确定长时间构建的问题是什么?有什么建议吗?


我的Flutter应用程序也出现了同样的问题,但经过大量调试和测试后,我们发现在调试模式下它会有点卡顿,但在实时模式下它运行得更好。 - Abhishek
1
在Android Studio中以调试模式构建需要10分钟,在xCode中只需要1分钟。差别是10倍,非常不方便。我认为这是我的本地问题,我想要解决它。 - FetFrumos
2
这是因为 Firebase 包在每次首次运行时需要加载依赖项和下载 pods 耗费了太多时间。如果您不使用 Firebase 包,则可以在 1-2 分钟内运行。 - Pradip D.
2个回答

3
有几种方法可以加速Flutter中iOS应用程序的构建过程:
使用profile构建模式:默认情况下,Flutter在debug模式下构建,该模式包括用于调试和开发的其他功能。但是,在profile模式下构建可以显着加快构建过程。您可以通过运行命令flutter build ios --profile切换到profile构建模式。
启用AOT编译:提前编译(AOT)可以通过在运行之前将Dart代码编译为机器代码来提高应用程序的性能。您可以通过运行命令flutter build ios --release --no-codesign启用AOT编译。
使用flutter build命令而不是flutter run命令:虽然flutter run命令方便进行开发,但它比flutter build命令慢,因为它包括热重载和调试等其他功能。
使用flutter build bundle命令:flutter build bundle命令为您的应用程序生成一个资源包,其中包括所有资源,如图像、字体和JSON文件。这个命令比flutter build命令快,因为它只构建必要的资产,而不是整个应用程序。 减小应用程序的大小:删除在应用程序中未使用的不必要的资产、库和类。您可以使用flutter analyze命令检测代码中的任何不必要部分。 清理并重新构建:有时,由于过期文件或缓存数据,构建过程可能会变慢。运行flutter clean命令,然后重新构建可以帮助加快进程。 使用性能更强的Mac:构建iOS需要一台Mac,构建时间可能会受到您使用的Mac性能的影响。如果您使用的是性能较低的Mac,可以尝试在性能更强的Mac上构建或使用基于云的Mac构建服务,如Bitrise或CircleCI。
及时更新Flutter SDK和Xcode至最新版本也是一个好习惯,以利用性能改进。

这是早期的ChatGPT垃圾信息,措辞和风格现在已经广为人知,并且大多数观点不仅是错误的,而且还会明显延长构建时间。
  1. 在所有平台上,配置文件模式构建速度要慢得多,它需要进行优化,而调试模式则不需要。
  2. Flutter分析在代码中不会进行任何不必要的检测,无论是资源还是其他内容。它只会建议对代码进行更改。
  3. 运行clean命令会删除缓存,导致后续的构建工作量增加。
- undefined

-4

我解决了这个问题 - 新的 Mac Mini(M1/8 Gb)。 第一次编译可以持续 40-50 秒(快了10倍)。 接下来的编译只需要 10-25 秒。


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