We have a platform that has the Dashboard, Android app and the iOS app and it is using webRTC for video calls.The problem is Android and Dashboard are working ok with all of our STUN/TURN servers, but iOS is working with a few of them. to describe it in more detail when I use "turn:numb.viagenie.ca" and "stun:stun.l.google.com:19302" together in the iOS app, it almost works on every different networks, except for protected wifi's on port 433 and 80. since we had a problem on webrtc connection being made on protected wifi's with the mentioned ports on all of our platforms, we have created some extra ICE servers just for those ports. the problem is that those servers are working fine with android and dashboard, but not with iOS. when I added those ICE servers to the iOS app it gets stuck at checking for finding matching candidates. anyone has any Idea how to solve this issue?
Try using coturn or restund and test different ports I guess.. I am currently facing the same issue with iOS and am doing the same. Please update any success
Related
Recently, I gave an iOS build to my client to test an app. I did it by using Unity and ARKit. From the client's feedback, he downloaded the application but the app is not initializing. In order to let the app to initialize, it requires Internet connection. I used a Plugin in my app when I contacted them, they told me that they are using Google's Firebase in their backend. Is this the reason that the app has been blocked or any other issues? Any suggestion?.
Btw, my client cannot use VPN. Is there a way to run something in code to change to VPN?
Our update has been rejected many times for ipv6 network connectivity issues. Our networking code has not changed between the previous release and this current release.
once i have just changed the testing credential which we gives apple for testing purpose and my application goes live.so now i am very much fed up with the things.because sometime apple accept and sometime its rejected.but he give the same reason due to ipv6 compatibility issue.
i have refer the apple documentation as well.any one can help me for this..
i have also search lots op link of stack overflow.
thanks in advance.
I have faced similar issue previously.
Steps you need to take care:
No IP Address should be hard coded.
Example: let api = 54.32.55.88 is invalid, use let api = www.mydomain.com
If you are using any Pods make sure they are compatible with IPv6.
Update the Reachability if you are using older.
Check your server configuration if its configured properly. Removing the AAAA if not valid for your configuration
If using AWS, AWS doesn't support IPv6, nor IPv6-only DNS through Route53.
Check some other solutions here.
Yes. I too faced this issue before many times. Apple is now supporting only apps those are compatible with IPv6.
First I tested my application as per their description. I tested on IPv6 but I didn't get any error as they said. So first complete debugging after connecting to IPv6. If you feel, it's working fine then do this.
I found out the IPVersion of my network through different websites. I took screenshots of the network I connected to on mobile and sent those screen shots to apple for review(saying it's a proof of connecting to IPv6).
Here below are the couple of sites that help you in finding out which version you are using.
Test IPv6
Google IPv6 test
Now it's accepted
As of June 1st 2016, all apps submitted to apple must be ipv6 compatible.
Here is the link for the announcement.
Now this comes with a lot of caveat. Basically this would take time to implement and apple started rejecting apps since September end. Now new apps that was being submitted was caught first, but now slowly apple is checking for ipv6 compatibility in old apps that owners are updating too.
Basically what apple tests is they connect their test device into a ipv6 network(their ISP broadcasts ipv6 connectivity), now if your app has a backend server, it should support any device that hits that server with ipv6 connectivity.
You can check whether your backend server is ipv6 compatible from here. Just paste your backend URL in the following and you will be able to see if your backend supports any ping from an ipv6 network.
If it doesn't then you have to make your server ipv6 reachable.
same issue was for me, if you are using Network Reachability class then update it from apple doc here.
Now my app is live with this fix.
I had same type of problem. I made an app which has a screen which only comes when a notification come so they(Apple team) could not able to check my app and giving me IPv6 issue then i told him about my app briefly that how my app works. So point only that tell him(apple team) about your app your problem can be solve.
For past few weeks I am trying to get the Kurento group calls to work with IPv6. However no success so far.
It seems that till M52 release of WebRTC (https://bugs.chromium.org/p/webrtc/issues/detail?id=5871), the WebRTC framework didn't support IPv6 for iOS. This was fixed in the M53 release of the iOS framework in August 2016.
However, it seems that with the latest M54 release of the framework group calls don't work with Kurento. First I tried to make it work with the official Kurento Group Call Java sample. In the end the video and audio from iOS goes to Chrome. But video and audio from Chrome doesn't come to iOS.
Then I found the Nubomedia Kurento iOS project. (https://github.com/nubomediaTI/Kurento-iOS). They have a sample for Kurento Room Project (Java Based) with iOS client. I managed to get it to run with Kurento 6.5 and 6.6 tagged commits. (For some reason the HEAD checkout doesn't run, even after adding 6.6.1-SNAPSHOT dependencies. It crashes with an exception during startup citing port conflict. Though I ensured that no other process was running on the same port.).
With IPv4 network, the Kurento Room Demo iOS project from Nubomedia runs properly and I am able to conference with one participant on Chrome and one participant on iOS.
However, on IPv6 network this demo fails. When I looked closely "WebRTC.framework" in the Nubomedia Kurento iOS project was checked in on Jul 29. Since M53 release of WebRTC.framework happened in August, it is understandable that this framework doesn't work with IPv6.
So I downloaded the M54 release of the framework from here: https://github.com/Anakros/WebRTC-iOS/releases/tag/13869.6.0
I replaced the older version of the framework in Nubomedia Kurento iOS project with this latest one. However, when I tried the Kurento Room Demo with this new build, the results were the same like I had obtained with the official Kurento Group Call Java sample. The video and audio from iOS goes to Chrome. But video and audio from Chrome doesn't come to iOS.
At this point, I don't have any clue on how to move forward to get Kurento Group Calls to work on iOS with IPv6. Hence the question:
Has anyone managed to get group calls working with Kurento on iOS with IPv6 only networks as required by Apple?
If yes, a few pointers on how to get it to work will be very helpful.
--
Note: I had asked this 4-5 days ago on Kurento Google Groups. But didn't get any answers. So trying here.
I got an app rejection mail from apple which is below,
We discovered one or more bugs in your app when reviewed on iPad and iPhone running iOS 10.0.2 on Wi-Fi connected to an IPv6 network.
Specifically, app remains on splash screen upon launch.
Based on their request i have created the NAT64 network on my Mac and shared that internet for the iPhone 5S device 10.0.2 os version , App was working fine,
But apple says its not working with IPv6
Can anyone confirm that do i need to check anything else?
Related question
Environments:
Appcelerator Studio Ti SDK 5.1.0 GA
XCode Version 6.3
Thanks in advance
Just Read the mail you got from apple people. Answer will be there only.
Use wireshark to know what exactly your network doing.
Also to understand the problem better use wireshark for analyzing what is going on - create an network as outlined in that session and see what happens on the wifi port
https://developer.apple.com/videos/play/wwdc2015/719/
for more info check #Sean Answer
After quite a bit of stress, I can confirm that the issue was a problem with our backend not being correctly configured for IPv6. Apparently, AWS doesn't support IPv6, nor IPv6-only DNS through Route53. I ended up moving all the internet facing bits of the backend away from AWS for the time being. I wanted to leave this up because I think there are probably going to be others who find themselves with similar problems as people start submitting updates past the IPv6-only restriction. The best tool I found for testing server/dns readiness has been: http://ready.chair6.net/
Request your hosting provider to assign your server IPv6 as well and they will not charge you for this. This will resolve your IPv6 issues.
In my case I contacted the hosting provider about this issue and they said IPv6 is not assigned to my server I requested them and asked for the cost, they said it is free of cost and will assign it now. I think hosting companies have to assign IPv6 to all servers but they are assigning it on priority bases for those who are facing this issue.
So better you contact hosting provider for your IPv6 assignment.
I haven't used it in a while until now but I cannot get it to work anymore even with a new, generated and unchanged, project. It worked perfectly fine before. It's been updated and the mobile app has been updated.. I've tried the desktop and CLI version.
Details:
Using Windows 10. Desktop App or CLI Phonegap.
Using iPhone iOS 9.0.2 mobile Phonegap app.
Using the basic, generated Phonegap Hello World.
What happens:
1. I serve the application.
2. I open the mobile app and enter credentials.
3. It sits on "Downloading" indefinitely
Note: If I open the URL in a browser on the serving machine it WILL open. If I open it on any other machine it will not.. This confuses me because they're on the same WiFi network so that has nothing to do with it. I even tried turning off my firewall in case the port was being blocked or something. I've tried 3000 and 8080.
Has anyone else experienced this?
I've uninstalled, re-reinstalled, used different versions, etc...
EDIT: I've found a solution, kind of.. If I use the --localtunnel flag it will work. I'm not sure why given that they ARE on the same network. Of course this also means that every single time I serve it is a different address which is quite a hassle. But at least I can test now.