-2

I have WebRTC framework for my iOS app.

But Apple iTune app store review team, rejected my app (even though it was working in my local hardware's, cost me 6 months of work). After waiting so long, they rejected, because its IPv4, has to be IPv6?

I cant simply change the whole WebRTC Framework that i have used in my app.

My target clients are only IPv4 (not IPv6, i am not even interested to use IPv6), is there no way to solve it? I am using this framework: https://cocoapods.org/pods/libjingle_peerconnection

Any advise/suggestion, has anyone tried the libjingle_peerconnection library to make compatible for IPv6?

EDIT: at 3.56AM

enter image description here enter image description here

  • 1
    Did your app crash? Did Apple send you a crash report? – rmaddy Mar 20 '17 at 23:13
  • 1
    `IPv6` has been required since June of last year... – l'L'l Mar 20 '17 at 23:16
  • 2
    [Edit] your question with relevant details of the *symbolicated* crash log and relevant code associated with the crash. In many of these cases, the whole "IPv6" is a red herring. – rmaddy Mar 20 '17 at 23:17
  • @rmaddy: Really? I'm interested to know why they would make such a big deal out of then... – l'L'l Mar 20 '17 at 23:18
  • 3
    Apple's message probably says something like "your app crashed when tested on an IPv6 network...". The fact that it crashed may or may not be anything to do with IPv6, they are just letting you know what environment they tested it in. They could say "Your app crashed when tested on Tuesday". The day of the week may be nothing to do with it, it is just a fact about when they tested it. You have to analyse the crash to determine the cause. If it turns out that it is related to IPv6 then you need to fix that, as IPv6 compatibility is a requirement. – Paulw11 Mar 20 '17 at 23:47
  • Possible duplicate of [What are the primary differences between IPv4 and IPv6?](http://stackoverflow.com/questions/38002216/what-are-the-primary-differences-between-ipv4-and-ipv6) –  Mar 21 '17 at 00:58
  • Possible duplicate of http://stackoverflow.com/a/40734423/285594 –  Mar 21 '17 at 21:09

1 Answers1

1

You need to add more details in your question to get an appropriate and correct answer.

My reason for putting an answer is not to answer your question as we need further information. My goal to answer is to make everyone aware how IPv6 functionality can be enabled when developing an Webrtc app.

Server side

Generally speaking primarily there are two main backend components the Webrtc clients connect to:

  1. Signaling server : This is used to carry signaling information such as your sdp between Webrtc endpoints. Can be implemented using web sockets or http or other mechanisms
  2. Stun and a relay/turn server: for obvious Udp hole punching through NAT traversal and if p2p not possible, to act as a relay between endpoints.

For IPv6 both of these servers should support IPv6 connections to it.

Client side

When apple tests IPv6, it must be disabling IPv4 network interface so that the iOS networking stack is forced to use IPv6. Hence you need to enable Webrtc stack to use IPv6 interface. This can be done by adding the constraint googIPv6 : true in the createpeerconnection constraints.

Other than this if you are using any other app servers in your code, you will have to make sure they accept v6 connections.

manishg
  • 9,520
  • 1
  • 16
  • 19