背景
我刚刚为 Windows 机器开发了我的第一个 Flutter 桌面应用程序。该应用程序在开发/调试时运行良好,但我正在尝试将其作为 Release模式下的应用程序进行测试。
做了什么
自己的证书和msix自带的测试证书
默认包。
实际问题
当我在另一个系统上安装应用程序时(甚至在我调试应用程序的实际系统上)。我可以成功安装 msix 设置我可以在应用程序中看到我的应用程序,但是当我尝试打开它时,它卡在空白/白色屏幕上。没有渲染 UI。如果我尝试最大化窗口,它会进入应用程序无响应状态。
任何帮助将不胜感激。
提前致谢。
更新/新发现
通过Yehuda Kremer提供的链接后拉了几天头发,我在这条推文中找到了答案
https://twitter.com/FilledStacks/status/1436280577439715338?s=20
所以主要问题是应用程序使用了一些在其他机器上不起作用的绝对路径(发布后)
1- 我的应用程序正在使用数据库,所以我确保该数据库路径是相对于应用程序文档目录的。
2- 现在构建也引用了一些依赖项,它们的路径也是绝对的。我注意到一个标志
CMAKE_INSTALL_LOCAL_ONLY
在 cmake_install.cmake
但该标志并未在任何地方设置。这是
flutter build windows -v
的日志https://pastebin.com/LAeshUMY
-- 现在我正在寻找一种将所有路径转换为相对路径的正确方法,以便构建可以安装在不同的机器上,而不仅仅是本地安装。
最佳答案
我找到了解决办法。
主要问题是该应用程序正在寻找一些依赖项,但无法找到它们。如前所述 here .
在 Release模式下没有发现的原因可能是以下之一,
解决方案:
关于安装 msix 后,Flutter Windows 桌面应用程序卡在白屏上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69127335/