如何将带有flutter的发布版本仅部署到物理设备



我想将flutter应用程序部署到所有连接的物理手机上。我目前的解决方案是一次向每个设备部署一个,但我希望一次完成所有这些操作。我从这个答案中找到的最接近的匹配是使用带有--release标志的flutter run -d all,以便部署到所有设备。

然而,使用-d all也会尝试部署到模拟器,这会引发此错误(并且不会部署到任何设备(:

Release mode is not supported by iPhone 8.

flutter devices的输出如下(去掉了真正的id(:

PhysicalPixel (mobile)   • XXX1    • android-arm64  • Android 11 (API 30)
PhysicaliPhone (mobile)  • XXX2    • ios            • iOS 14.4.1
iPhone 8 (mobile)        • XXX3    • ios            • com.apple.CoreSimulator.SimRuntime.iOS-14-5 (simulator)
Chrome (web)             • chrome  • web-javascript • Google Chrome

有没有办法";部署所有";仅限于物理设备?所需结果部署到PhysicalPixelPhysicaliPhone(具有更多电话的情况下(,但不部署到iPhone 8(模拟器(或Chrome

据我所知,不可能通过某种形式的参数命令a仅在物理设备上运行,但您可以指定哪些设备而不是-d all

如果你把这个答案结合起来(https://stackoverflow.com/a/59593575/13263384)从你链接到的同一个问题,再加上对launch.json的一个小改动,它可能就是你想要的。所以这样做吧:

{
"version": "0.2.0",
"configurations": [
{
"name": "Physical-1",
"request": "launch",
"type": "dart",
"deviceId": "XXX1",
"args": [
"--release"
]
},
{
"name": "Physical-2",
"request": "launch",
"type": "dart",
"deviceId": "XXX2",
"args": [
"--release"
]
},
"compounds": [
{
"name": "Physical devices",
"configurations": [
"Physical-1",
"Physical-2"
]
}
]
}

复合名称物理设备现在将成为一个可运行的目标,它将向这些设备启动构建。

编辑:现在我仔细阅读了这个答案,我认为这个答案实际上比我的好。但你想怎么做取决于你!

相关内容

最新更新