我编写了一个 Flutter 应用程序,它使用 dart http 包连接到运行在单独机器上的 Web 服务器。在我的本地机器 (Mac) 上,我将主机名“www.xyz.com”添加到 /etc/hosts,使用 IOS 模拟器时一切正常。我想在真实设备(iPhone SE)上测试应用程序,但不想越狱设备。因为不越狱就无法在手机上编辑主机文件,所以我安装了允许设置重定向规则的 Weblock。我可以在我的手机上启动该应用程序,但是,当向单独的机器(在我的本地网络中)上的 Web 服务器发出请求时,我收到以下错误:
SocketException: Failed host lookup: 'www.xyz.com' (OS Error: nodename nor servname provided, or not known errno = 8)
从应用程序外部,我可以通过浏览器中的“www.xyz.com”访问网络服务器。
总结一下:
- 应用程序在机器 A 上的 IOS 模拟器中运行并连接到机器 B 上的 Web 服务器 -> 工作正常
- 应用程序在真实设备上运行并连接到机器 B 上的 Web 服务器 -> 错误
- 通过电话上的浏览器连接到机器 B 上的 Web 服务器 -> 工作正常
输出flutter doctor -v
[✓] Flutter (Channel stable, v1.12.13, on Mac OS X 10.15.4 19E287, locale en-DE)
• Flutter version 1.12.13 at /Users/Jonas/Documents/Programming/flutter
• Framework revision cf37c2cd07 (5 months ago), 2019-11-25 12:04:30 -0800
• Engine revision b6b54fd606
• Dart version 2.7.0
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
• Android SDK at /Users/Jonas/Library/Android/sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-R, build-tools 29.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Xcode 11.4.1, Build version 11E503a
• CocoaPods version 1.9.1
[✓] Android Studio (version 3.6)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 44.0.2
• Dart plugin version 192.7761
• Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
[✓] IntelliJ IDEA Ultimate Edition (version 2019.3.4)
• IntelliJ at /Applications/IntelliJ IDEA.app
• Flutter plugin version 45.0.2
• Dart plugin version 193.6911.31
[!] IntelliJ IDEA Community Edition (version 2019.1.2)
• IntelliJ at /Applications/IntelliJ IDEA CE.app
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
• For information about installing plugins, see
https://flutter.dev/intellij-setup/#installing-the-plugins
[✓] Connected device (1 available)
• Jonass iPhone • 5ea0e7db176aeb6f278f88f410fb9d0fd4256658 • ios • iOS 13.4.1
! Doctor found issues in 1 category.
谢谢!