App rejected/crashing on IPv6? Possible solution...

Hello gang - Finished my game last week and it ran fine on the corona simulator with no problems. Built and sent it to itunes connect and it was rejected with the following notice:

"Performance - 2.1 Your app crashes on iPad and iPhone running iOS 9.3.3 connected to an IPv6 network when we are on the loading screen.

This occurred when your app was used: - On Wi-Fi
Please revise your app and test it on a device while connected to an IPv6 network (all apps must support IPv6) to ensure that it runs as expected."

Threw me for a loop since the game didn’t use any network commands, it wasn’t trying to access any web page either. Tried a couple of more times to submit with changes and still rejected. Ran it thru the xcode simulator and discovered the game would freeze up at the loading screen when tested on ipad versions. After a bit of work, I discovered a lot of my image files used underscores in the names. Eg: “badguy_run.png” or “gamemusic_1_mp3.mp3” Went through and removed all underscores in these file names. Game ran fine in xcode simulator and my build was accepted in itunes the same day.

If your having the same rejection from Apple, renaming file names with underscores might do the trick. Old apps I built last year had image names with underscores in them with no issues, maybe Apple’s iOS is getting more strict with this in the future?

Maybe? That is weird that you are an IPv6 error for using an underscored

This is weird. First the message about IPv6 compatibility is probably misleading. Apple wants everyone to know that your apps have to work on IPv6 and when they test while only connected to an IPv6 network and an app locks up at that point, they are potentially assuming you’re making IPv4 network connections when something else is causing the problem.

I can’t see why underscores would be causing the problem. You should be able to use the Console app to get to the console log of the simulator and see what error messages were happening. It’s always best to test on real devices too and watch for errors there.  The Corona Simulator gets you close, but it can’t simulate an actual device.

Rob

Yes, exactly Rob! The messages I was getting from Apple (I finally had to call the guy) about makeing sure my app was IPv6 compatible was a bit of a macguffin. After a lot of searching, I found a post here: http://buildapp.net/forums/show.asp?id=5738 where one of the solution to their app crashing in xcode sim was no underscores in the file names. (Scroll to bottom of that webpage to see the solutions listed)  To be fair, a lot of my file names used underscores in the them so maybe the iOS couldn’t handle it. I’ll try to test it out in the future and see what happens…

There is a lot of bad advice in that post. It’s really old.  I’ve never heard of underscores causing problems. But I do know case sensitivity is a problem which would show on the Xcode iOS Simulator and real device. You can always ask Apple to send you the console log. Case sensitivity problems show as Warnings in the console log usually followed by an error that seems unrelated. Lets say you have an image:

button.PNG  (real filename in the OS).

Your code is like:

local button = display.newImageRect(“Button.png”, 50, 25)  – No error, but you will get a case sensitivity warning and “button” will be nil.

button.x = 100 – Now you get an error “Attempt to index ? a nil value” or something like that.

If you’re using a newer version of Corona (latest public build 2906 or later), we should be issuing warnings in the Corona Console window for case sensitivity problems…

Rob

I got the same reject from apple regarding IPV6 on iOS10. Also my app doesn’t have any special network calls so it may hide another issue. However, I don’t have an iOS10 compatible device to test it.

Is there an issue with file names having underscore on iOS10?? cause all our 1000+ level files have underscores in their file names.

Can you post the whole reject message? The IPv6 message is something they send out to everyone that crashes during testing. They run their test devices on IPv6 only networks and they falsely assume crashes are likely network related. You can ask them for a console log from their test run and it may have more information as to why you crashed. It probably isn’t network related.

Rob

From Apple

  • 2. 1 PERFORMANCE: APP COMPLETENESS

Performance - 2.1

We discovered one or more bugs in your app when reviewed on an iPad and iPhone running iOS 10.0.1 on Wi-Fi connected to an IPv6 network.

Specifically, we were unable to start the game because the app was loading for an indefinite amount of time. We’ve attached a screenshot for your reference.

Next Steps

Please run your app on a device while connected to an IPv6 network (all apps must support IPv6) to identify the issue(s), then revise and resubmit your app for review.

For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue(s).

Resources

For information about supporting IPv6 Networks, please refer to Supporting IPv6 DNS64/NAT64 Networks and <a data-cke-saved-href=" IPv6-only Networks.

For a networking overview, please see About Networking

If you have difficulty reproducing a reported issue, please try testing the workflow described in Technical Q&A QA1764: How to reproduce bugs reported against App Store submissions.

If you have code-level questions after utilizing the above resources, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:

  • complete details of your rejection issue(s)
  • screenshots
  • steps to reproduce the issue(s)
    symbolicated crash logs - if your issue results in a crash log/>/>

 

This is the complete message. nothing much. I already asked for their log.

/>/>

Maybe? That is weird that you are an IPv6 error for using an underscored

This is weird. First the message about IPv6 compatibility is probably misleading. Apple wants everyone to know that your apps have to work on IPv6 and when they test while only connected to an IPv6 network and an app locks up at that point, they are potentially assuming you’re making IPv4 network connections when something else is causing the problem.

I can’t see why underscores would be causing the problem. You should be able to use the Console app to get to the console log of the simulator and see what error messages were happening. It’s always best to test on real devices too and watch for errors there.  The Corona Simulator gets you close, but it can’t simulate an actual device.

Rob

Yes, exactly Rob! The messages I was getting from Apple (I finally had to call the guy) about makeing sure my app was IPv6 compatible was a bit of a macguffin. After a lot of searching, I found a post here: http://buildapp.net/forums/show.asp?id=5738 where one of the solution to their app crashing in xcode sim was no underscores in the file names. (Scroll to bottom of that webpage to see the solutions listed)  To be fair, a lot of my file names used underscores in the them so maybe the iOS couldn’t handle it. I’ll try to test it out in the future and see what happens…

There is a lot of bad advice in that post. It’s really old.  I’ve never heard of underscores causing problems. But I do know case sensitivity is a problem which would show on the Xcode iOS Simulator and real device. You can always ask Apple to send you the console log. Case sensitivity problems show as Warnings in the console log usually followed by an error that seems unrelated. Lets say you have an image:

button.PNG  (real filename in the OS).

Your code is like:

local button = display.newImageRect(“Button.png”, 50, 25)  – No error, but you will get a case sensitivity warning and “button” will be nil.

button.x = 100 – Now you get an error “Attempt to index ? a nil value” or something like that.

If you’re using a newer version of Corona (latest public build 2906 or later), we should be issuing warnings in the Corona Console window for case sensitivity problems…

Rob

I got the same reject from apple regarding IPV6 on iOS10. Also my app doesn’t have any special network calls so it may hide another issue. However, I don’t have an iOS10 compatible device to test it.

Is there an issue with file names having underscore on iOS10?? cause all our 1000+ level files have underscores in their file names.

Can you post the whole reject message? The IPv6 message is something they send out to everyone that crashes during testing. They run their test devices on IPv6 only networks and they falsely assume crashes are likely network related. You can ask them for a console log from their test run and it may have more information as to why you crashed. It probably isn’t network related.

Rob

From Apple

  • 2. 1 PERFORMANCE: APP COMPLETENESS

Performance - 2.1

We discovered one or more bugs in your app when reviewed on an iPad and iPhone running iOS 10.0.1 on Wi-Fi connected to an IPv6 network.

Specifically, we were unable to start the game because the app was loading for an indefinite amount of time. We’ve attached a screenshot for your reference.

Next Steps

Please run your app on a device while connected to an IPv6 network (all apps must support IPv6) to identify the issue(s), then revise and resubmit your app for review.

For updates, install the new version as an update to the previous version, then follow the steps to reproduce the issue(s).

Resources

For information about supporting IPv6 Networks, please refer to Supporting IPv6 DNS64/NAT64 Networks and <a data-cke-saved-href=" IPv6-only Networks.

For a networking overview, please see About Networking

If you have difficulty reproducing a reported issue, please try testing the workflow described in Technical Q&A QA1764: How to reproduce bugs reported against App Store submissions.

If you have code-level questions after utilizing the above resources, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:

  • complete details of your rejection issue(s)
  • screenshots
  • steps to reproduce the issue(s)
    symbolicated crash logs - if your issue results in a crash log/>/>

 

This is the complete message. nothing much. I already asked for their log.

/>/>