We have the Wi-Fi network provided by our accessory.
OK.
There are a bunch of possibilities here:
-
Things could be breaking down at the link layer. For example, the iOS device could be falling off your accessory’s network.
-
Things could be breaking down at the IP layer. For example, something is blocking IP (or ARP [1]).
-
Things could be failing at the application layer on either your client and server.
You need to find a way to tease these apart. RVI is a key weapon in your arsenal here. Earlier you wrote:
I tried to do a packet trace but after running the rvictl -s
command
the connection succeeds to the iPhone but drops after 10-15 secs.
Can you clarify what you mean by “the connection”? Are you referring to the RVI connection? Or the TCP connection? I suspect the former, but I just want to be sure.
Also, when you make your TCP connection, what type of endpoint do you target? A Bonjour service type? A DNS name? An IP address? And is this running over IPv4 or IPv6?
Can you run a Wi-Fi level packet trace on your accessory?
If not, can you set the accessory to use no password and pin it to a specific channel? If so, you should be able to run an Wi-Fi level packet trace on your Mac. See Recording a Wi-Fi Packet Trace.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
[1] Technically not IP but I’m going to gloss over that for the moment.