I am having a hard time wrapping my head around the difference between targetting the iOS simulator and targetting an iOS device.
1) Correct me if I am wrong but it seems that:
1a. DCCIOS32 (iOS Simulator) only allows linking agains dynamic libraries, and not static libraries (not sure why).
1b. DCCIOSARM (iOS Device) only allows linking against static libraries, and not dynamic libraries (to prevent code injection in devices).
1c. DCCOSX (OS X) allows linking against both dynamic and static libraries.
2) Does this mean that if I only have third-party static libaries I am screwed if I want to run and debug in the iOS Simulator? Even if LIPO was used to include the X86 image in the library file (*.a)?
3) If we have the source then can we use XCode to produce a DYLIB file instead for testing in the iOS Simulator (I know there is a hidden setting to allow XCode to produce DYLIB).
4) If I want to build Delphi sources to libraries does it mean I have to compile to both static and shared libraries to target the different iOS platforms?
5) Even so, I am not able to get any DYLIB to link in DCCIOS32. I am using the DYLIB files from the iPhoneSimulator SDK (which I would have thought is targetted for the simulator), but getting a "Bad object file format" error. It seems clear I do not understand the iOS linking process at all. I will be grateful if anyone can explain this one to me. I added the {$L libiconv.dylib} option to my source to test. I even copied it to my source folder in case Delphi was looking somewhere else.
Connect with Us