How to connect Delphi to iOS in 2020

Okay… here we go again… I haven’t tried to build for iOS in about a year. There’s a new Delphi version (10.3.3) and my first attempt at testing my app (which BTW works on Android) has failed miserably. This document is a blow-by-blow of my experience in fixing it.

Problem #1: PA Server Needs to be updated.
First off… there’s a new PAServer. I tried to “refresh” the list of devices connected to my Mac and it just hung without any Meaningful errors. Upon looking up the “connection settings” and hitting the “Test Connection…” button… I got a more meaningful error message. It told me that it copied a new PA Server to the Scratch directory on my Mac and told me to go install it.

I installed it. Now I can see the SIMULATORS but not the iPAD I have connected to it.

What’s next?

Problem #2: The “Trust” relationship between my iPAD and Mac had expired.

This required me to open XCode and hit Command+SHIFT+2 to open the “Devices and Simulators…” screen where it informed me that the iPAD did not trust the computer. By unlocking the iPAD with this screen open… the iPAD then asked for permission to trust the OSX machine.

Problem #3: The biggest issue… The App Store Requires Screenshots in new form factors

No big deal right? Wrong. Delphi 10.3.3 still does not support iOS Simulator 11. Unfortunately iOS Simulator 11 is required for its iPhone Xs Max simulator. The Xs Max has a tall-skinny form factor that is unlike anything offered in earlier simulators. Without the ability to run my app on this simulator I either had to 1) Find/Buy a Physical Xs Max, or 2) Photoshop the screen shots (difficult due to form factor). I opted for #2 and handed Apple some screen-shots that were nowhere close to accurate and actually quite ugly. But the fluky didn’t notice.

Surprisingly Not a Problem
I actually didn’t have much trouble with provisioning profiles this time around. I didn’t have to go spelunking and deleting old certificates or redownloading profiles this time around. I’m quite surprised with how smooth all that went. I don’t know if the software has improved around that process (I hope so), but I used to have all kinds of problems that seemed to stem from Apple choosing expired/revoked certs over current valid ones… and a million other issues. If I have this problem in the future, I’ll remind myself that the best way to test it is to create a blank objective-c app in XCode, plug-in your app identifiers in the same way you would in Delphi then RUN it. XCode seemed to always do a better job resolving whatever it needs to resolve with provisioning if built from XCode. Once built from XCode, the Mac environment is more likely to be properly setup next time you build through PAServer.

Problem #4

Apple’s Developer terms of service changed and I had to get the boss to sign in and accept them before I could build anything.

0 Replies to “How to connect Delphi to iOS in 2020”

  1. Interesting read. I’ve dabbled in Delphi some time ago, especially for cross-platform projects, but it’s been ages since I’ve dealt with the iOS side of things. The provisioning profile dance always seemed like a dark ritual to me. Good to hear that’s smoothed out a bit. I’m curious, with the way app development is moving and the cross-platform tools evolving, do you think Delphi is still keeping up well with the competitors like Xamarin or React Native? The screenshot struggle sounds like a real pain, but I gotta admit, the Photoshop workaround gave me a chuckle. How does Delphi’s iOS support compare to these days’ leading frameworks in your opinion?

  2. Well, Maeve, I gotta say that Delphi’s always felt a bit like the underdog to me. I mean, Xamarin and React Native, they have the backing of massive communities and the likes of Microsoft and Facebook. They’re just buzzing with updates and plugins that make life way easier. Delphi’s still trucking, but it does feel like it’s always playing catch-up with the big boys.

    You only gotta look at the iOS Simulator issue mentioned in the article. Xamarin’s had support for the latest iOS devices pretty much as soon as Apple gets ’em out the door. Delphi? Not so much. It seems to struggle keeping up with Apple’s pace. That screenshot fiasco kind of highlights those gaps that you don’t see with other more “in-sync” frameworks.

    That being said, there’s a charm to Delphi’s “fight the power” kind of vibe. It’s got its niche, and there are still devs swearing by it for its cross-platform capabilities. It’s just… is it enough when we’re racing towards newer tech every day? What’s your take on the future survival of Delphi, given your experiences?

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.