Jump to content
FoxAl

Delphi 10.4 on Xcode 15 and iOS 17 - Crash on start

Recommended Posts

Ive recently updated my MacOS to Sonoma 14.2.1, Xcode to 15.2 in an effort to modernize things.

However it broke my Delphi app (running on Delphi 10.4.2), I am able to compile it and deploy Ad Hoc, however when I open it on any iPad it simply crashes with no error message at all.
I am using iPhoneOS 17.2 SDK (I have 16.2 set up from before updating Xcode which was stable but can't compile, says Xcode didn't find the selected platform)

Xcode 15 doesn`t seem to support previous iPhoneOS Platforms below version 17, on the Platforms tab I can only get iOS 17.2, all other options are just the simulators.

Share this post


Link to post

It doesn't even seem to start going through the software itself, since I`m unable to debug (it seems that debugging isn't working in iOS 17), I tried looking at the iPad logs on Xcode and I found these suspicious logs:

 

Sandbox: EasyConnect(3991) deny(1) sysctl-read kern.bootargs
EasyConnect[3991] Corpse allowed 1 of 5
'app<com.ListersCentralLimited.EasyConnect(FF9C6C9E-E77E-49E5-9895-7CCAE854AC44)>' Skipping container path lookup because containerization was prevented (<RBSLaunchContext: 0x6108b82f0>)
[app<EasyConnect((null))>:3991] termination reported by launchd (6, 1, 6)
Removing process: [app<EasyConnect((null))>:3991]
{"msg":"#dic AppMonitor received Termination", "pid":3991, "bundleId":"EasyConnect", "exitReason":-1}

Share this post


Link to post
5 hours ago, Rollo62 said:

I have added that but still not working, however I'm not even sure my IDE is going through the FMX Platform iOS pas that I put on the directory itself, since debugging isnt working I cant put a breakpoint there to see if it follows through this path, I'm gonna do a clean, delete all res files and do a compile all to test it

Share this post


Link to post
10 minutes ago, FoxAl said:

I'm not even sure my IDE is going through the FMX Platform iOS pas that I put on the directory itself,

Copy the original FMX.Platform.iOS to your project folder, under the project directory, that directory where the *.dproj file sits.

Perhaps you need to unlock the write protection of that file.
Make the changes.

Additionally, add this copied, edited file to the project tree itself.

That should replace the original file by your edited, copy of that file, and should use that from now on for linking.

 

 

Edited by Rollo62

Share this post


Link to post

Tried all the steps and it didnt work, added the new FMX Platform.iOS to the project and did a clean build, it created the dcu file for it but still crashes

Share this post


Link to post

Are you able to run a simple Xcode app?

If so, the system should be ok and you could try a simple, new and empty Delphi app.

 

Share this post


Link to post
2 hours ago, Rollo62 said:

Are you able to run a simple Xcode app?

If so, the system should be ok and you could try a simple, new and empty Delphi app.

 

I've created a new simple Delphi app with just a button, it compiles but when I deploy and try to run it gives me the message:
"Unable to locate Device Support for the connected device. Please check Xcode installation path and open Xcode > Windows > Devices and Simulators"

My iPad shows there as running iOS 17.2, I've tried that compiling as development, if I try Ad Hoc if compiles and shows me the "Troubleshoot cannont connect to iOS Device" window but it shows the app on the iPad

Both ad hoc or development crash when I click to run it on the ipad, I'm running out of ideas, I've messed with so many configs on Xcode, SDK etc over the last 4 days I guess I'll wipe out all SDKs on Delphi and do a clean config from scratch?

 

Edit: I've deleted the 17.2 SDK and got it from scratch again and updated local files, still same results, I can compile, build and it generates the FMX Platform.iOS.dcu however still crashes on the iPad, I'm just desperate at this moment and debating formatting my Macintosh to install back the previous MacOS version to be able to reinstall Xcode 14. 

Edited by FoxAl

Share this post


Link to post

Still not working, I created an empty project with just a button and a ShowMessage on click to test and it still crashes.
I've added both the FMX.InAppPurchase.iOS.pas and FMX.Platform.iOS.pas onto the project with the changes, not sure what I am doing wrong, here is the project 7z file:
https://we.tl/t-F4NHef9rQZ
 
Maybe its something on the SDK? I noticed when I click on the "Update Local File Cache" its way faster than it used to be for iPhoneOS 16.2 its almost like it doesnt download all files it should from Xcode?
 
Anything I should look for on the iPad logs too?

Edited by FoxAl

Share this post


Link to post
On 1/13/2024 at 5:49 AM, FoxAl said:

"Unable to locate Device Support for the connected device. Please check Xcode installation path and open Xcode > Windows > Devices and Simulators"

This is a separate, and known issue - currently no debugging from Delphi for iOS 17 devices.

On 1/12/2024 at 4:51 AM, FoxAl said:

Delphi app (running on Delphi 10.4.2)

Any reason why you're not using Delphi 12? Are you planning to deploy the app to the App Store?

37 minutes ago, FoxAl said:

Maybe its something on the SDK? I noticed when I click on the "Update Local File Cache" its way faster than it used to be for iPhoneOS 16.2 its almost like it doesnt download all files it should from Xcode?

You can ensure you receive a proper SDK import (usually) by following these steps:

  1. On the Mac, under the ~/PAServer/scratch-dir folder, remove any folders starting with cache-dir-
  2. On the Windows machine, delete the SDK folder from C:\Users\(username)\Documents\Embarcadero\Studio\SDKs where (username) is the logged in username
  3. In the Delphi SDK Manager, delete the SDK, then re-add it.

I added "usually" because that might not be the case for Delphi 10.4 and current iOS SDKs. If you're targeting mobile, you really should stay current.

Share this post


Link to post
6 hours ago, Dave Nottage said:

 

Any reason why you're not using Delphi 12? Are you planning to deploy the app to the App Store?

I've had Delphi 11 installed and ready to port my project but with other demands and requiring time to see if all the components (TMS, Reports etc) would need updates as well it just got left for another time, I've always been deploying Ad Hoc but the idea of deploying to the App Store is in plans for the next months so now I guess there is no further delaying for that
 

6 hours ago, Dave Nottage said:

You can ensure you receive a proper SDK import (usually) by following these steps:

  1. On the Mac, under the ~/PAServer/scratch-dir folder, remove any folders starting with cache-dir-
  2. On the Windows machine, delete the SDK folder from C:\Users\(username)\Documents\Embarcadero\Studio\SDKs where (username) is the logged in username
  3. In the Delphi SDK Manager, delete the SDK, then re-add it.

I added "usually" because that might not be the case for Delphi 10.4 and current iOS SDKs. If you're targeting mobile, you really should stay current.

 

It is somewhat possible that 10.4 doesn't import it properly, compared to the older SDK folders its much smaller and seems lacking, I did delete and re-download the platform on Xcode to be sure that it did the 7-8gb download properly

Share this post


Link to post

Pulled out an all nighter getting all the components up to Delphi 11 and updating my project, most things seems fine but at this point when building I get:

 

[DCC Error] E2597 Undefined symbols for architecture arm64:
    Error: "_FPDFText_HasUnicodeMapError", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium27FPDFText_HasUnicodeMapErrorEPvi in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFText_IsGenerated", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium20FPDFText_IsGeneratedEPvi in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFPageObj_GetMatrix", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium21FPDFPageObj_GetMatrixEPvRNS0_8Fpdfview9FS_MATRIXE in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFAnnot_GetFormControlIndex", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium29FPDFAnnot_GetFormControlIndexEPvS2_ in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFAnnot_GetFormFieldAlternateName", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium35FPDFAnnot_GetFormFieldAlternateNameEPvS2_PDsm in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFAnnot_IsOptionSelected", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium26FPDFAnnot_IsOptionSelectedEPvS2_i in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFAnnot_GetFormControlCount", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium29FPDFAnnot_GetFormControlCountEPvS2_ in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFAnnot_GetFormFieldExportValue", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium33FPDFAnnot_GetFormFieldExportValueEPvS2_PDsm in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDF_GetSignatureCount", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium22FPDF_GetSignatureCountEPv in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDF_GetSignatureObject", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium23FPDF_GetSignatureObjectEPvi in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFSignatureObj_GetContents", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium28FPDFSignatureObj_GetContentsEPvS2_m in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFSignatureObj_GetSubFilter", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium29FPDFSignatureObj_GetSubFilterEPvPcm in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFSignatureObj_GetReason", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium26FPDFSignatureObj_GetReasonEPvS2_m in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFSignatureObj_GetTime", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium24FPDFSignatureObj_GetTimeEPvPcm in Winsoft.FireMonkey.PDFium.o;
      Error: "_FPDFSignatureObj_GetDocMDPPermission", referenced from:      __ZN7Winsoft10Firemonkey6Pdfium36FPDFSignatureObj_GetDocMDPPermissionEPv in Winsoft.FireMonkey.PDFium.o;
  ld: symbol(s) not found for architecture arm64
[DCC Fatal Error] F2588 Linker error code: 1 ($00000001)

 

Share this post


Link to post

Okay, so this was an issue with a component reading the old Delphi 10.4 libraries, fixed this and did a full upgrade to Delphi 11.3 Alexandria, applied the fix copying the FMX.Platform.iOS.pas file to the project folder and added it to the project, however still same behavior, when I open it on the iPad, crash.

I'll put the log but I believe the same issue persists, with a clean new project with just a button (and the PDFium component demo which I've tested) both work with the modified FMX.Platform.iOS.pas, so not sure if my project uses something else that needs another pas file? I read something about another .pas file change for projects that use store transactions but its not the case here.

Share this post


Link to post
6 minutes ago, FoxAl said:

however still same behavior, when I open it on the iPad, crash.

Only on iPad, or does it crash on iPhone, too? Does it crash immediately on startup?

Share this post


Link to post
23 hours ago, Dave Nottage said:

Only on iPad, or does it crash on iPhone, too? Does it crash immediately on startup?

Hi Dave,
I only have an iPad to test since the app was made for it in thought, here is what I could dig on the console logs, I tried to filter what seems more relevant so let me know if the full log is needed

iPad console
https://pastebin.com/ukW4RU8U

 

Edit#3:

Full log from the app`s container
https://pastebin.com/mkdaJVsf

 

It calls to my attention the line:
 

reasons": [
"Library not loaded:",
"Referenced from: <9807A387-C221-3164-ABE4-084FAF74E32D> /Volumes/VOLUME/*/EasyConnect.app/EasyConnect",
"Reason: tried: '' (relative path not allowed in hardened program), '/private/preboot/Cryptexes/OS' (not a file), '' (relative path not allowed in hardened program)"

 

Not sure exactly if that is a library that would be on the iOS SDK or something related to Delphi components

Edited by FoxAl

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×