Learn Courses My Dashboard

Making App Work with Older Versions of IOS

Hi, I have developed my app and it is running on my iPhone IOS version 14.4 with no issues.

I recently tested it on the simulator to run on the IPAD and it runs with no issues once I added code to use a popover controller. However, when I tried to install it on my IPAD I get a build error:

" No such module ‘FirebaseStorage’"
" Class Unavailable: WKWebView before iOS 11.0 (NSCoding support was broken in previous versions)"
" Class Unavailable: Content and frame layout guides before iOS 11.0"

My IPAD IOS version is 9.3.5 and I set the build version to this.

How do you make sure your app will work on older versions of IOS? Is the only solution recoding the app for an older version?

I have googled solutions but haven’t come across anything I understand well enough to implement and was hoping someone could provide me guidance.

Essentially, yes.

You can set your targeted OS version for an earlier one but you have to take care not to use later APIs. Or you can mark the later APIs with the @available() attribute but you’d still have to provide alternate functionality for the earlier versions. Either way, you’d need multiple code paths depending on which version the user is running.

It’s pretty standard in iOS development to support n-1 operating systems. So, if the current version of iOS/iPadOS is 14, then support 13 and 14. iOS users tend to keep their devices pretty up to date.

At any rate, support for a version that is ~5 years out of date is, I gather, rather unusual. Apps that have been around since then, maybe. But a new app? I would venture to guess it’s almost unheard of.

Thanks Patrick, the reason I wanted to support an older version is that I can’t update my iPad past version 9.3.5.

Then you would need to make judicious use of Apple’s documentation to see when particular APIs were introduced and mark them with @available to hide them from older OSes.

Just in case you aren’t aware, you can find API availability on Apple’s documentation pages in the upper right corner. It will look like this and will be there for every class, struct, method call and property: