Headers wrong or missing for iOS 11.3

0

I am using C++ Builder 10.2.3 to create an app for iOS 64 bit devices. I have XCode 9.3 on my Mac (which is running High Sierra 10.13.4) and PAServer 19.0 from the CB 10.2.3 update.

I am having compile errors when building for iOS 11.3. For example, stdarg.h file not found, stddefs.h file not found. I believe there is a problem with the SDK on the Mac, or the PC, or both.

I have uninstalled and reinstalled Xcode 9.3 on the Mac.

I have deleted the iOS 11.3 SDK in SDK Manager and from the local drive, and added it back into the SDK Manager. I have updated the local file cache.

I noticed that the Remote include path shown in SDK Manager for iPhoneOS 11.3 (64 bit) shows $(SDKROOT)/../../../../../Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0

This path does not exist on the Mac or in the PC cache. In PC cache, I find at C:\Users\\Documents\Embarcadero\Studio\SDKs\iPhoneOS11.3.sdk\usr\lib with no clang subdirectory.

On the Mac, I find ../Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.1.0

Clearly something is missing or wrong. After many hours of searching, I have not resolved the problem and my project is at a standstill. Is anyone building apps iOS 11.3 with CB 10.2.3 and XCode 9.3? It seems like anyone using CB 10.2.3 might have this, and perhaps Delphi too if the SDK caching works the same.

- Phyllis

  • Accepted Answer

    Friday, April 13 2018, 01:44 AM - #Permalink
    0

    It looks like EMBT is aware of the problem. They're working on a fix.

    What if you revert to SDK 11.2 in the meantime?

    The reply is currently minimized Show
  • Responses (5)
    • Accepted Answer

      Saturday, April 21 2018, 04:10 AM - #Permalink
      0

      Phyllis,

      Glad that you solved it. That's the beauty of the public forums (when trolls are kept away). Sharing information and experiences is the only way to rise.  
      And posting back the solution as you did is the best way.
      Have fun coding (of course, coding IS fun)

       

      Steve

      The reply is currently minimized Show
    • Accepted Answer

      Friday, April 20 2018, 06:46 AM - #Permalink
      0

      Steve - I have gotten a working environment. Huge thanks to you for your help. See https://community.embarcadero.com/answers/ios-mobile-app-using-delphi-10-2-3 for a solution (and my thanks!)

      The reply is currently minimized Show
    • Accepted Answer

      Tuesday, April 17 2018, 06:20 AM - #Permalink
      0

      >> Also remove all Entitlement.TemplateiOS.xml files from your project. They will be recreated.

      I think this was one of my problems. I have successfully gotten the iOS 11.2 SDK from my Mac/Xcode 9.2 over to my PC.

      I am still having compiler errors that lead me to believe that either the bcciosarm64 compiler can't handle the C++ includes in the SDK, or there is a path issue somewhere.

      When I compile a file that includes for iOSDevice64, I am getting "[bcciosarm64 Error] cmath(313): no member named 'signbit' in the global namespace". The line in the cmath file is

      using ::signbit;

      Crazy, huh? Unless someone can solve this one for me, it looks like I will have to either wait for a patch to C++ Builder 10.2.3, or submit a support ticket. I'm not optimistic about the latter.

      Thanks for your help - I'm really glad to know how to get an older SDK from XCode.

      - Phyllis

      The reply is currently minimized Show
    • Accepted Answer

      Friday, April 13 2018, 10:49 AM - #Permalink
      1

      Hi Phyllis,
      If I'm correct you have to download Xcode 9.2 and that should be enough. It doesn't matter whether the iOS is 11.3.
      The SDK is backward compatible down to 11.0. Usually even further down, but in the particular 11 OS case they broke the compatibility since they force apps to be 64bit.
      Don't forget, once you redownload XCode9.2, to update the SDKs from within RadStudio IDE before compiling.
      Also remove all Entitlement.TemplateiOS.xml files from your project. They will be recreated.

      There is also a way to make several Xcode versions and sdk live side by side. I never tried but I wrote down the somewhat obscure instructions in my personal code Wiki. I give that info here (again, without warranties, I think that reinstalling Xcode 9.2 should be enough):

      In the Apple's developer page you can download older versions of Xcode.
      Then you can use the xcode-select command to switch between versions.
      sudo xcode-select -s /Applications/Xcode551.app/Contents/Developer
      Replace the parameter with the path where you installed the xcode version you want to switch to.
      You can check the current version with xcode-select -p
      Then, in the IDE, add a new SDK.
      If the Xcode 6.1 is currently selected you'll get SDK 8.1, SDK 8.0 for xcode 6.0.1 and SDK 7.1 xcode 5.5.1

       

      I hope this helps. Have a nice (coding?) week-end

      Steve

      The reply is currently minimized Show
    • Accepted Answer

      Friday, April 13 2018, 09:30 AM - #Permalink
      0

      Thanks Steve. My ios device is on 11.3. How would I get ios 11.2 SDK?

      Again, many thanks!

      - Phyllis

      The reply is currently minimized Show
    Your Reply

    Please login to post a reply