Repository: flutter
Issue: mDNS does not work on an iPad
Labels: tool,P2,team-tool,triaged-tool

It appears that mDNS discovery is not working on iPads. The seriousness of this is exacerbated by https://github.com/flutter/flutter/issues/41133. There are additional reports [here](https://github.com/flutter/flutter/issues/41911) @jaco-pixeldump @enricobenedos.

## Steps to Reproduce

`flutter run -v` any flutter app on an iPad (tested with iPad Air 2 on iOS 12.4). See the following logs:

```
[  +24 ms] Application launched on the device. Waiting for observatory port.
[   +3 ms] Checking for advertised Dart observatories...
[+5015 ms] No pointer records found.
[   +2 ms] mDNS lookup failed, attempting fallback to reading device log.
[        ] Waiting for observatory port.
[   +1 ms] Observatory URL on device: http://127.0.0.1:49612/669x3vyByzY=/
[   +1 ms] Attempting to forward device port 49612 to host port 1024
[        ] executing: /Users/fujino/git/flutter/bin/cache/artifacts/usbmuxd/iproxy 1024 49612
b0f7081e6f02d7e3b573bf6afcb64e61ed8b86bb
[+1009 ms] Forwarded port ForwardedPort HOST:1024 to DEVICE:49612
[        ] Forwarded host port 1024 to device port 49612 for Observatory
[   +2 ms] Installing and launching... (completed in 13.0s)
```

mDNS discovery failed because no pointer records were found. Fallback to reading the logs succeeded (however, this won't work for iOS 13, for example).

Output of `flutter doctor -v`:

```
[✓] Flutter (Channel master, v1.10.15-pre.68, on Mac OS X 10.14.6 18G87, locale en-US)
    • Flutter version 1.10.15-pre.68 at /Users/fujino/git/flutter
    • Framework revision 6430b440d7 (23 hours ago), 2019-10-10 14:14:53 -0700
    • Engine revision 5162413111
    • Dart version 2.6.0 (build 2.6.0-dev.0.0 48e93d3d3b)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    • Android SDK at /Users/fujino/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 28.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_152-release-1343-b01)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.0)
    • Xcode at /Users/fujino/Downloads/./Xcode.app/Contents/Developer
    • Xcode 11.0, Build version 11A419c
    • CocoaPods version 1.7.5

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 37.0.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[✓] Connected device (1 available)
    • iPad Air 2 • b0f7081e6f02d7e3b573bf6afcb64e61ed8b86bb • ios • iOS 12.4

• No issues found!
```

And this is the output of `dns-sd`:

```
~/git/flutter$ dns-sd -Z _dartobservatory
Browsing for _dartobservatory._tcp
DATE: ---Fri 11 Oct 2019---
13:46:44.608  ...STARTING...

; To direct clients to browse a different domain, substitute that domain in place of '@'
lb._dns-sd._udp                                 PTR     @

; In the list of services below, the SRV records will typically reference dot-local Multicast DNS names.
; When transferring this zone file data to your unicast DNS server, you'll need to replace those dot-local
; names with the correct fully-qualified (unicast) domain name of the target host offering the service.

_dartobservatory._tcp                           PTR     io\.flutter\.examples\.hello-world._dartobservatory._tcp
io\.flutter\.examples\.hello-world._dartobservatory._tcp SRV     0 0 49612 iPad-Air-2.local. ; Replace with unicast FQDN of target host
io\.flutter\.examples\.hello-world._dartobservatory._tcp TXT     "authCode=669x3vyByzY="
```