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.
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.
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.