iOS 26 Network Framework AWDL not working

Hello,

I have an app that is using iOS 26 Network Framework APIs.

It is using QUIC, TLS 1.3 and Bonjour. For TLS I am using a PKCS#12 identity.

All works well and as expected if the devices (iPhone with no cellular, iPhone with cellular, and iPad no cellular) are all on the same wifi network.

If I turn off my router (ie no more wifi network) and leave on the wifi toggle on the iOS devices - only the non cellular iPhone and iPad are able to discovery and connect to each other. My iPhone with cellular is not able to.

By sharing my logs with Cursor AI it was determined that the connection between the two problematic peers (iPad with no cellular and iPhone with cellular) never even makes it to the TLS step because I never see the logs where I print out the certs I compare.

I tried doing "builder.requiredInterfaceType(.wifi)" but doing that blocked the two non cellular devices from working. I also tried "builder.prohibitedInterfaceTypes([.cellular])" but that also did not work.

Is AWDL on it's way out? Should I focus my energy on Wi-Fi Aware?

Regards, Captadoh

Answered by DTS Engineer in 867952022

Did you opt in to peer-to-peer on both the listener and the browser? We never enable that by default because it has a non-trivial network impact.

IIRC, this is how you’d do that on the listener:

let lp = BonjourListenerProvider(type: "_test._tcp")
let l = try NetworkListener(
    for: lp,
    using: .parameters({
        TCP()
    })
    .peerToPeerIncluded(true)
)

And a similar technique is available for the browser.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I’ve been super busy.

Hello @DTS Engineer I wanted to check in regarding this issue. I checked the issue you mentioned that was taking a lot of your time and it looks to have slowed down.

I’ve been working on this slowly but steadily over the past few weeks, but that effort has kinda bogged down due to my desire to use the new Network framework API ‘correctly’. That’s harder than it might seem )-:

But, yeah, I’ll continue plugging away at this, just as soon as I file yet another bug against the new API! [1]

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] The closure you pass to the NetworkListener.run(_:) call really shouldn’t be marked as throws because, if you do throw, that error goes nowhere.

my desire use the new Network framework API ‘correctly’.

Am I using the new Network Framework API incorrectly? Could me passing a closure that throws to NetworkListener.run(_:) be the cause of my issues? If yes then it is odd that things work as expected when devices do not have cellular service.

Could me passing a closure that throws to NetworkListener.run(_:) be the cause of my issues?

That’s unlikely. I mentioned it purely because it’s one of the various random issues I’ve bumped into during this process. But if you’re worried about this, I recommend that you make your closure non-throwing like so:

listener.run {
    do {
        … your code here …
    } catch {
        … log the error …
    }
}

Sadly, I’ve still not made relevant progress on your main issue. I think I need to just bite the bullet and create a minimal test project, rather than try to build something ‘correct’.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I need to just bite the bullet and create a minimal test project

Thank you. I look forward to hearing from you regarding what you find.

minimal test project

Hi @DTS Engineer - I wanted to check in and see if there were any preliminary findings you could share? Is this a bug in Network Framework?

bite the bullet

@DTS Engineer bumping to keep visibility

@DTS Engineer bump

minimal test project

@DTS Engineer bump

bite the bullet

Hi @DTS Engineer - I am curious if you've made any progress on setting up a minimal test project?

progress on your main issue

@DTS Engineer can an additional engineer be looped in on this issue?

create a minimal test project

@DTS Engineer bumping to not lose visibility

progress on your main issue

@DTS Engineer is it possible to get an update on this?

Is there a bug? Is what I experienced the intended behavior?

bite the bullet

Hi @DTS Engineer can you help me understand how I can contribute to resolving this issue? At the end of this month we are approaching this issue being open for 5 months. I am currently blocked from continuing development due this issue being a hinderance to a key feature of my app. I look forward to hearing from you with next steps.

bite the bullet

Bah, again, I’ve just not had time to get back to this.

If I were in your shoes I would:

  1. Create a minimal test project that illustrates the issue. That’ll ensures that there isn’t some other part of your app that’s causing problems.
  2. Run it on two devices connected over infrastructure Wi-Fi. If that doesn’t work, there’s something wrong with your code.
  3. Run it again with the devices not on infrastructure Wi-Fi, and thus relying on peer-to-peer Wi-Fi to carry the packets.
  4. If that fails, file a bug with your results. Make sure to include:
    • Your test project.
    • Sysdiagnose logs taken on both devices shortly after reproducing the problem…
    • … with additional logging enabled per the Network Diagnostics for iOS/iPadOS instructions on our Bug Reporting > Profiles and Logs.

Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Accepted Answer

@DTS Engineer I worked on this and to my surprise things worked as expected.

I then went back and re-ran my app and again things worked as expected.

The only difference now is that I have an iPhone 16 Pro with cellular service. Before I had the iPhone 12 mini with cellular service.

So it looks like this is a hardware thing.

post your bug number

I’m glad that you got at least something working.

So it looks like this is a hardware thing.

I’d be quite surprised if that were the case. Are you able to go back and retest with your iPhone 12 mini?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Unfortunately I do not have a physical sim card anymore.

retest with your iPhone 12 mini?

iOS 26 Network Framework AWDL not working
 
 
Q