Compiling for iOS9


I’ve built an iOS app to be used internally, by not more than 5 people. One iPad someone has is from 2012 and can’t go beyond iOS9. Current version of Xojo doesn’t seem to support pre-iOS12 versions.
I’m then considering building my app with an earlier Xojo release, which would support iOS9 (my app being rather “simple”, with a TCPSocket as the most complex thing, I guess such an earlier Xojo version would work).

But earlier versions of Xojo may not support the signing process used these days; I also have an AppWrapper licence, but am unaware it handles iOS apps.
My goal is to simply install my app using device provisioning and dragging&dropping the app to the devices in Xcode. I’ve already done it for my own iPad and consider doing the same for the 2012 one.

Before I spend a considerable amount of time searching for which latest Xojo version compiles for iOS9, without even being sure it would work, I though I’d ask here for enlightenments.
Can this be done?

It isn’t a matter of compiling, but the minimum version of iOS that we declare is supported in the plist file. As I recall, we’ve updated several times over the years when things we have introduced just don’t work on older versions.

You could try manually changing the entry in the plist file using PlistBuddy, but it’s not something that you e support and YMMV.

FWIW, I believe the lowest version currently supported is iOS 11.

I think I had to use 2017 r2 for iOS 9, but if you’ve written it in a recent version opening it in 2017r2 will probably throw up a number of errors to resolve before building and results may not be the same.

You have to deal with two kinds of changes to do:

a. Language change (say Dim vs Var, etc.)

b. Feature that do not exists yet in 2017r2

BTW: do you have a compatible (to Xojo 2017r2) XCode version ?

The system requirements (Resources:System Requirements 2017r2 - Xojo Documentation) say Xcode 8.
I think you can download older versions with an Apple Developer account. You may need an older version of macOS too.

With the time it will take to setup a machine and work through any issues (if they all resolvable) it may be cheaper to just buy them a newer iPad.


Thanks; I’ll try this. I’ll have to code sign it after the modification, I guess.

Thanks for telling me the version you used; I won’t have to search manually.

As I said, my project has nothing really complicated (TCPSocket, at most). I expect nothing to break if I try a 2017 version.

No problem. I’m not enough accustomed to the newer version, anyway.

I hope (and think) this won’t be a problem.

Good catch! Well, I have older OS installations laying around; I’ll try there.
Thank you.

I have many older MacOS versions installed on various partitions of various Macs; that should be ok.
If I don’t have to download Xcode (takes one day with my connection), I’ll even be happier.

They are considering that, yes.
My time isn’t directly paid, so it’s still cheaper if I try (and I’ll probably learn things as well, if not everything goes straight).

Supporting ancient versions is often significantly more costly than just the dollar value. Using an older Xojo means you may have to give up things like dark mode support even on systems where it’d be supported. Here’s a real-world example, though it doesn’t necessarily apply to you in this case.

Recently Let’s Encrypt’s old root certificate expired. This is not a problem and something they’ve been prepared for a long time. They used the same key for both the old and new root certificate, so their certificates would validate against either. Trouble is, not all systems receive root certificate updates. Notably, macOS 11 and earlier do not trust LE’s new root. And for the record, the new root certificate is still 10 years old already. So this means using URLConnection on macOS 11 cannot connect to any server using a certificate issued by Let’s Encrypt unless ValidatedCertificates is turned off or the new root is manually injected into the keychain.

Given the real world consequences of not updating, I think it’d be far more costly to keep the iPad alive. It’s time to be replaced. I’m pretty sure you’re not the one I need to convince, but you might want to nudge them a little harder to get it done.

That’s the part I had doubts with (as I use “basic” things for this rather small app), and these doubts were the reason I initially wanted to actually test.
But I agree with you, I’ll avoid the path of using an older Xojo version just for that. I know how cumbersome it can become to mix versions and keep them alive at the same time.
There remains Greg’s advice of trying to just modify the plist.

You’re right, and one said to me this would be done. Without a useable iPad, they’ll lose extra functionalities for the core application, which runs on a computer; that’s not essential however, just more convenient.

Thank you.

Forum for Xojo Programming Language and IDE. Copyright © 2021 Xojo, Inc.