问题描述
- 用iOS模拟器调试,正常
- 用XCode打开Runner工程,可以直接在iPhone上安装
- 通过Android Studio的调试按钮,iPhone真机调试,APP能正确安装,但是运行白屏。有弹窗,调试信息输出不正常
白屏了,有弹窗
命令行指定端口号
不点Android Studio的运行或者调试按钮
用命令行启动调试,并且指定端口号
-
能运行起来,但是弹窗仍然有
指定端口号 只是这样跑起来用处不大,除了能看到log输出,证明程序是活的,断点调试之类的都做不了。Dart代码已经不受控。这个效果和手动点Runner工程的运行按钮是差不多的。
通过系统设置允许应用运行
- 这是MAC电脑的安全性弹窗,而不是iPhone手机的安全性设置。
- 通过以下步骤允许iproxy程序运行
(1)打开“系统设置”。
(2)进入“隐私与安全性”选项。
(3)在“安全性”部分,找到被阻止的“iproxy”应用,点击“仍要打开”按钮。
(4)输入Mac的开机密码进行确认,然后“iproxy”将会被允许运行
允许iproxy
- 这样跑起来的程序是真正的调试,Dart代码的断点能够正常跟踪。
小结
- Flutter通过Android Studio的调试按钮在真机上运行,是通过“iproxy”应用实现的。
- MAC系统认为“iproxy”应用不安全,所以阻止了调试过程的继续进行。
- 需要手动切换到MAC系统的: 系统设置-> 隐私与安全 -> 安全性 所在位置,允许“iproxy”应用正常运行,并且还要求输入开机密码进行确认。
- 安全性这里,一定要选择 “App Store与已知开发者”,如果选择“App Store”,那么模拟器调试或者真机调试,说不定就出问题了。现象就是各种弹窗,并且提示语也不精确,如果不是遇到过,很难想到要修改这里的设置。
允许来源选项