Wi-Fi Aware using QUIC

Hi

We are modifying the official Wi‑Fi Aware sample app to integrate QUIC for transmission speed testing. Unfortunately, we have been unable to establish a successful QUIC connection between two iOS devices.

Could you provide a correct implementation example of using QUIC over Wi‑Fi Aware?

I have attached the iOS system logs and our modified app project for your reference in case FB22499984 .

Thanks

Answered by DTS Engineer in 885144022

OK, I have some results.

First up, TLS. Apple’s QUIC implementation requires TLS and there’s no special affordance for this within Wi-Fi Aware [1]. Given that, you’ll need to come up with your own TLS strategy. For a quick test you can just:

  1. Hard code the TLS digital identity on the server side.
  2. Disable TLS server trust evaluation on the client side.

In a real product you’d need to do something better than that. I have a bunch of suggestions in TLS For Accessory Developers. If you want to dig into the details, I recommend that you start a new thread with your questions, because I’d prefer to keep this thread focused on the relationship between Wi-Fi Aware and QUIC.

[1] It’s a much-requested feature though (r. 158253982).


Apropos that, there are a couple of bugs you have to work around:

  • Set includePeerToPeer on the parameters you use to create your Network framework objects (r. 175045182).
  • Use the original Network framework API, rather than the one we introduced in macOS 26, meaning NWConnection rather than NetworkConnection (r. 175046087).

With those two workarounds in place, I think this will work. However, I haven’t had time to test this myself, so I’d be interested in hearing how you get along.

Share and Enjoy

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

Thanks for starting a new thread for this.

I’ve seen reports of problems like this from others, so I’m currently researching how that panned out and I’ll reply with an update when I know more.

Share and Enjoy

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

OK, I have some results.

First up, TLS. Apple’s QUIC implementation requires TLS and there’s no special affordance for this within Wi-Fi Aware [1]. Given that, you’ll need to come up with your own TLS strategy. For a quick test you can just:

  1. Hard code the TLS digital identity on the server side.
  2. Disable TLS server trust evaluation on the client side.

In a real product you’d need to do something better than that. I have a bunch of suggestions in TLS For Accessory Developers. If you want to dig into the details, I recommend that you start a new thread with your questions, because I’d prefer to keep this thread focused on the relationship between Wi-Fi Aware and QUIC.

[1] It’s a much-requested feature though (r. 158253982).


Apropos that, there are a couple of bugs you have to work around:

  • Set includePeerToPeer on the parameters you use to create your Network framework objects (r. 175045182).
  • Use the original Network framework API, rather than the one we introduced in macOS 26, meaning NWConnection rather than NetworkConnection (r. 175046087).

With those two workarounds in place, I think this will work. However, I haven’t had time to test this myself, so I’d be interested in hearing how you get along.

Share and Enjoy

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

Wi-Fi Aware using QUIC
 
 
Q