software differences between 8th and 9th generation iPads?

I am developing an app for a client. One of the functions of the app is to download basic files from a web server.

7th and 8th generation iPad models can run the app, no problem.

However, seemingly, the app crashes when trying to download content on their new 9th generation iPad models.

OS varies on both the older and newer generations, from 15.6.1 to 16.4.1 (latest), and seems to make no difference.

I cannot access the physical devices, but the app works in the 9th generation simulator from Xcode just fine.

Are there any HARDWARE differences between 8th and 9th generation base iPad models that would affect network requests like this? Or maybe default Settings configurations?

Are there any HARDWARE differences between 8th and 9th generation base iPad models that would affect network requests like this?

Nothing that springs to mind. This is almost certainly a bug caused by something in your program — either your code or the OS — that relies on undefined behaviour that just happens to pan out differently between the two iPad versions.

One of the functions of the app is to download basic files from a web server.

What networking API are you using? URLSession?

Share and Enjoy

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

relies on undefined behaviour that just happens to pan out differently between the two iPad versions

That would make sense I suppose. I have just been struggling to figure out what the difference would be between the two devices, since they're very similar, and since the OS version seemingly can vary without making a difference. They're using MDM on all of the devices, which also I have no access to.

What networking API are you using? URLSession?

It's using dataWithContentsOfURL which I believe is using NSURLSession. It's a legacy app that hadn't been touched in years.

It's using dataWithContentsOfURL

I’d stop investigating right there and just switch to a modern network API immediately. Consider that API a ticking bomb, as the documentation warns:

Don't use this synchronous method to request network-based URLs. For network-based URLs, this method can block the current thread for tens of seconds on a slow network, resulting in a poor user experience, and in iOS, may cause your app to be terminated.

Fair enough. It will be hard to confirm what the problem really is, but this is worth a shot. Thank you both!

It's using dataWithContentsOfURL which I believe is using NSURLSession.

Just FYI, last time I checked this uses NSURLConnection! That doesn’t actually make much of a difference in practice because NSURLConnection continues to work as well as it ever did. Moreover, both APIs call down to a common implementation, so it’s unusual for network-specific problems to manifest in NSURLConnection but not NSURLSession.

You mentioned that the app crashes. What does that crash report look like? Can you post an example? See Posting a Crash Report for advice on how to do that.

Share and Enjoy

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

software differences between 8th and 9th generation iPads?
 
 
Q