Flutter iOS 14.0构建错误:无法向mDNS注册Observatory端口

ccrfmcuu  于 2022-11-25  发布在  Flutter
关注(0)|答案(6)|浏览(334)

我正在使用Flutter实现一个移动应用程序。当我尝试从XcodeiOS真实设备上运行该应用程序时,收到以下错误:

[VERBOSE-2:FlutterObservatoryPublisher.mm(115)] Failed to register observatory port with mDNS.

只要设备连接到Mac并从Xcode运行,这款应用就能正常运行。但当我试图直接从设备主屏幕打开它时,它就崩溃了。
此问题发生在iOS 14.0和更高版本上。它在iOS 13.x上工作正常。

2q5ifsrm

2q5ifsrm1#

添加此属性info.plist

<key>NSBonjourServices</key>
<array>
    <string>_dartobservatory._tcp</string>
</array>
7z5jn7bk

7z5jn7bk2#

"我能修好它“”我就是这么做的“
打开iPhone模拟器,然后运行flutter项目。然后进入系统偏好设置〉安全性和隐私〉常规标签。您需要为iproxy授予权限(我不记得文件名,但您需要为该文件授予运行权限)。在模拟器上成功运行后,插入iPhone,再次按照步骤操作。

8ehkhllq

8ehkhllq3#

这几天我一直在处理这个问题(没有解决方案)。如果你有任何有用的信息,here你可以分享它(或者,也许,找到它)。
目前,我正在研究一个变通办法,我将尽快在该线程中分享。

lndjwyie

lndjwyie4#

我调试了一个(基于object-c)flutter项目,我喜欢在Xcode中启动它,我发现在Xcode中启动应用程序比在终端中使用"flutter run"命令更快。然后我喜欢对它使用"flutter attach"进行热重新加载。
我经常遇到这种错误。
它似乎接触AppDelegate. m文件,强制它重新编译可以解决这个问题....

sycxhyv7

sycxhyv75#

这是原始文档
在iOS 14及更高版本上,在应用的调试版本中启用Dart多播DNS服务,以通过flutter attach添加debugging functionalities such as hot-reload and DevTools
Info.plist中只添加键NSBonjourServices,并将值设置为字符串为_dartobservatory._tcp的数组。注意Xcode会将其显示为“Bonjour services”。
或者,将密钥NSLocalNetworkUsageDescription集添加到所需的自定义权限对话框文本中。
原始文档提到不应在Release版本中使用此功能,并且还提供了一些如何仅为Debug版本启用此功能的说明。

  • 警告:此服务不得在应用的发布版本中启用,否则您可能会遇到App Store被拒绝的情况。*
chy5wohz

chy5wohz6#

Flutter官方文件

根据Flutter官方文件:
在iOS 14及更高版本上,在应用的调试版本中启用Dart多播DNS服务...
一种方法是为每个构建配置维护一个单独的应用Info.plist副本。
1.将应用程序的Info.plist重命名为Info-Debug. plist。创建一个名为Info-Release.plist的副本,然后将其添加到Xcode项目。

1.在Info-Debug.plist中只添加键NSBonjourServices,并将值设置为一个包含字符串_dartobservatory._tcp的数组。

1.在目标的构建设置中,将Info.plist文件(INFOPLIST_FILE)设置路径从path/to/Info.plist更改为path/to/Info-$(CONFIGURATION). plist。

相关问题