Darwin Build Environment Help Center

SDK version old guide needed

append delete Jay

Windows: Win 11 home 23H2
Builder version: 3.64
iOS sdk version: 17.5

Issue:
ITMS-90725: SDK version issue - This app was built with the iOS 17.5 SDK. All iOS and iPadOS apps must be built with the iOS 18 SDK or later, included in Xcode 16 or later, in order to be uploaded to App Store Connect or submitted for distribution.

I extracted all the relevant files 1 and half years ago.
Everything worked fine up till the last update of my game which was 3 months ago.
Today when I try to update I get this issue.

I'm sorry if this is a simple question. How do I update my iOS sdk?

Reply RSS

Replies

append delete #1. Pierre-Marie Baty

Hello @Jay,

First, update your builder to the latest version, because the compilers in the one you have will likely be too old to build the latest iOS SDK.

Then, delete your SDK directory (it's useless now) and run the Migration Assistant again on a Mac with an up-to-date version of Xcode to migrate the most recent SDK.

If your Mac is too old to install the latest Xcode, rename the Xcode.app that's installed on it so as to have a backup, then download the latest Xcode anyway from xcodereleases.com, extract it and move it to your Mac's /Applications directory. Your Mac won't be able to run it, but it'll make no difference to the Migration Assistant, which will be able to gather the files it needs from it nonetheless.

Once you've migrated the Apple SDKs to your PC, rebuild your app and re-submit it to Apple.

append delete #2. Jay

Thanks for the explanation!

I have a question.
Because it's an old mac mini and I have to hook up all the peripherals to get it setup and also the boot time is really slow, I was thinking of using my colleague's macbook to get the sdk. I'm asking because I remember the credentials and signatures is tied to the hardware. I still want to use the credentials of my old mac mini so that the game is built from my hardware but get the sdk from my colleague's laptop. Is it ok/doable? Are there somethings to look out for?

append delete #3. Pierre-Marie Baty

I remember the credentials and signatures is tied to the hardware.

It's not. The build machine information simply informs Apple about which version of Xcode and macOS were used to produce a particular build, and this is just for statistics purpose. But there's nothing about your hardware.

Nonetheless, you might want to avoid creating strange data in Apple's charts, e.g. if you submit an app that claims to have been built with an antique version of macOS that was curiously capable of running the latest Xcode ; in general, it's best to pick the latest SDKs from a Mac that is able to run them (even if it's not *strictly* necessary).

append delete #4. Jay

Ok I understand! Thank you so much for explaining!

append delete #5. Pierre-Marie Baty

You're welcome. Happy building :-)

append delete #6. Jay

Hello again! I finally have the time to build.
Unfortunately, I encounter some issues :(

So here's what I did:

1) I downloaded the newest version of the builder: v3.74

2) Ran the setup.
(Note: I did not remove/uninstall the previous version, so the setup overwrote the old setup because the location was default.)

3) Copied migration tool to USB.

4) Extracted Mac Xcode.
(iOS SDK 18.5 and all others, like TV and Mac OS.)

5) Now I ran the script file on Windows.
(Note: I forgot to delete the old SDKs on my Windows. Hopefully it got properly overwritten..)

6) I noticed the settings didn't change. My extra compiler and linker flags are still there. But my keys are all gone. Luckily, I backed it up, so I just had to copy it over. Phew!

7) Now I run the build, and this is my error:
```
Building the dependency project UnityFramework...
+ Preparing output directory...
+ XCFrameworks: 0 supplied
+ Libraries: 4 supplied, 5 built
+ Frameworks: 1 supplied, 0 built
+ Pruning compilation results...
+ Pre-parsing project files...
+ Building UnityFramework for iphoneos (configuration: Release)
+ [arm64] Compiling .\Classes\UI\UnityViewControllerBase+visionos.mm...
+ [arm64] Compiling .\Classes\Unity\UnityWebRequest.mm...
+ [arm64] Compiling .\Libraries\Il2CppOptions.cpp...
clang: error: no such file or directory: 'Apple'
clang: error: no such file or directory: 'Apple'
clang: error: no such file or directory: '10.14.0/Firebase/Google-Mobile-Ads-SDK/GoogleMobileAds.xcframework/ios-arm64 -FC:/Users/JayH1V2/Downloads/Firebase'
clang: error: no such file or directory: 'Apple'
clang: error: no such file or directory: '10.14.0/Firebase/Google-Mobile-Ads-SDK/GoogleMobileAds.xcframework/ios-arm64 -FC:/Users/JayH1V2/Downloads/Firebase'
clang: error: no such file or directory: 'Apple'
clang: error: no such file or directory: 'Apple'
clang: error: no such file or directory: '10.14.0/Firebase/Google-Mobile-Ads-SDK/UserMessagingPlatform.xcframework/ios-arm64/GoogleMobileAds.xcframework/ios-arm64'
clang: error: no such file or directory: '10.14.0/Firebase/Google-Mobile-Ads-SDK/UserMessagingPlatform.xcframework/ios-arm64/GoogleMobileAds.xcframework/ios-arm64'
clang: error: no such file or directory: '10.14.0/Firebase/Google-Mobile-Ads-SDK/GoogleMobileAds.xcframework/ios-arm64 -FC:/Users/JayH1V2/Downloads/Firebase'
clang: error: no such file or directory: 'Apple'
clang: error: no such file or directory: '10.14.0/Firebase/Google-Mobile-Ads-SDK/UserMessagingPlatform.xcframework/ios-arm64/GoogleMobileAds.xcframework/ios-arm64'
+ [arm64] Compiling .\Classes\Unity\CMVideoSampling.mm...
detected compiler error, aborting multithreaded build.

Press any key to continue . . . clang: error: no such file or directory: 'Apple'
clang: error: no such file or directory: '10.14.0/Firebase/Google-Mobile-Ads-SDK/GoogleMobileAds.xcframework/ios-arm64 -FC:/Users/JayH1V2/Downloads/Firebase'
clang: error: no such file or directory: 'Apple'
clang: error: no such file or directory: '10.14.0/Firebase/Google-Mobile-Ads-SDK/UserMessagingPlatform.xcframework/ios-arm64/GoogleMobileAds.xcframework/ios-arm64'
```

I thought the link was broken, but the location is the same.
But I tried to select the frameworks again from my Downloads folder.
But I got this popup:

```
An error occurred while checking for POSIX symlinks to convert to Microsoft format in this framework directory. Please make sure your Windows user account has WRITE permissions in this directory.
```

Any idea what is happening?

:: @Jay added on 15 Jun ’25 · 16:03

Some extra notes.

- I started the builder tool as admin too.

- These are my flags (which have no issue with the previous build, just that Apple stated I needed to build with the latest iOS SDK):

```
Extra compiler flags:
-F"C:/Users/JayH1V2/Downloads/Firebase iOS v7.7.0/Firebase/GoogleSignIn"
-F"C:/Users/JayH1V2/Downloads/Firebase Apple 10.14.0/Firebase/Google-Mobile-Ads-SDK/GoogleMobileAds.xcframework/ios-arm64"
-F"C:/Users/JayH1V2/Downloads/Firebase Apple 10.14.0/Firebase/Google-Mobile-Ads-SDK"
-F"C:/Users/JayH1V2/Downloads/Firebase Apple 10.14.0/Firebase/FirebaseAnalytics"
```

```
Extra linker flags:
-F"C:/Users/JayH1V2/Downloads/Firebase iOS v7.7.0/Firebase/GoogleSignIn"
-framework GoogleSignIn
-framework AuthenticationServices
-framework LocalAuthentication
-framework SafariServices
-F"C:/Users/JayH1V2/Downloads/Firebase Apple 10.14.0/Firebase/Google-Mobile-Ads-SDK/GoogleMobileAds.xcframework/ios-arm64"
-framework GoogleMobileAds
-framework AdSupport
-framework CoreTelephony
-framework JavaScriptCore
-framework MediaPlayer
-framework MessageUI
-framework MobileCoreServices
-framework WebKit
-lsqlite3
-lz
-F"C:/Users/JayH1V2/Downloads/Firebase Apple 10.14.0/Firebase/Google-Mobile-Ads-SDK"
-framework UserMessagingPlatform
-framework AppAuth
-framework GTMAppAuth
-framework GTMSessionFetcher
-F"C:/Users/JayH1V2/Downloads/Firebase Apple 10.14.0/Firebase/FirebaseAnalytics"
-framework GoogleAppMeasurement
-lc++
-framework GoogleUtilities
-framework nanopb
-framework FBLPromises
-ObjC
```

append delete #7. Pierre-Marie Baty

Hello @Jay

It looks like the spaces that appear in some paths in your extra linker flags aren't parsed properly by the compiler, in spite of the quotes. For example,

-F"C:/Users/JayH1V2/Downloads/Firebase iOS v7.7.0/Firebase/GoogleSignIn"

behaves as if it was parsed as:

-FC:/Users/JayH1V2/Downloads/Firebase

iOS

v7.7.0/Firebase/GoogleSignIn

And

-F"C:/Users/JayH1V2/Downloads/Firebase Apple 10.14.0/Firebase/Google-Mobile-Ads-SDK"

behaves as if it was parsed as:

-FC:/Users/JayH1V2/Downloads/Firebase

"Apple" <-- notice this one

10.14.0/Firebase/Google-Mobile-Ads-SDK

Hence the compiler errors such as:

clang: error: no such file or directory: 'Apple'

For example.

As I no longer compile the Clang compiler myself, instead relying on the official Clang builds, I currently don't know whether it parses its command-line flags properly, but I'd suggest renaming those paths that contain spaces as a workaround. E.g. rename "Firebase Apple 10.14.0" to something like "Firebase_Apple_10.14.0", and proceed likewise with the other paths that contain spaces. It should fix the problem.

append delete #8. Jay

Thank you for your reply!
Your solution worked :)

I'm able to build and upload but I have another issue which I got through email.
(Note: Nothing changed in my Unity project when it was built 4 months ago on the older SDK.)

```
ITMS-90482: Invalid Executable - The executable 'DinowithaGun.app/Frameworks/LofeltHaptics.framework/LofeltHaptics' contains bitcode.
```

Any idea what this could be?

append delete #9. Pierre-Marie Baty

Bitcode is a long deprecated way of distributing pre-compiled frameworks. See if you can upgrade the "LofeItHaptics" framework that contains it. If you need to use this exact version of the framework, you may use the "bitcode_strip.exe" command-line tool (from the builder's Toolchain directory) to remove all LLVM bitcode it contains.

append delete #10. Jay

Erm... This may sound like a beginner question, but how do I use it?
I double-clicked on "bitcode_strip.exe" and a terminal window just appeared and closed.

append delete #11. Pierre-Marie Baty

It's a command-line tool. You need to invoke it from the command prompt (terminal window).

You call it like this:

%
"%UNITYBUILDER_PATH%\Toolchain\bitcode_strip.exe" -r LofeltHaptics.framework/LofeltHaptics -o LofeltHaptics.framework/LofeltHaptics
%

The above command supposes your current working directory is located in the same directory where the "LofeItHaptics.framework" directory can be found.

In the next version of the builder I'll make sure stripping bitcode is done automatically. This used to be the case until recently, where I removed this check because I falsely thought nobody was distributing frameworks with bitcode anymore nowadays. Your issue proves I was wrong on this point.

append delete #12. Jay

Thank you for your reply! Sorry busy week...
I tried that command, but I'm getting this:

```
PS C:\Users\JayH1V2\Downloads\Unity\GIT\dinosurvivor_clean\SurvivorClean\Assets\Settings\Asset Packages\Unity Store\Feel\NiceVibrations\Plugins\iOS> "%UNITYBUILDER_PATH%\Toolchain\bitcode_strip.exe" -r LofeltHaptics.framework/LofeltHaptics -o LofeltHaptics.framework/LofeltHaptics
At line:1 char:51
+ "%UNITYBUILDER_PATH%\Toolchain\bitcode_strip.exe" -r LofeltHaptics.fr ...
+ ~~
Unexpected token '-r' in expression or statement.
At line:1 char:54
+ ... n\bitcode_strip.exe" -r LofeltHaptics.framework/LofeltHaptics -o Lofe ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Unexpected token 'LofeltHaptics.framework/LofeltHaptics' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken

PS C:\Users\JayH1V2\Downloads\Unity\GIT\dinosurvivor_clean\SurvivorClean\Assets\Settings\Asset Packages\Unity Store\Feel\NiceVibrations\Plugins\iOS>
```

This is my conversation with the author of the plugin:
```
ME
Hi I'm trying to build on iOS and I'm getting this error:
ITMS-90482: Invalid Executable - The executable 'game.app/Frameworks/LofeltHaptics.framework/LofeltHaptics' contains bitcode.
I'm on Feel 3.11
Will upgrading to Feel 5 fix it or break anything?

DEV
no, it's the same version of NV in both

ME
I see
Do you know how I can fix it?

DEV
I don't know, I've never encountered that. maybe try turning bitcode on (or off) in your xcode project?
that seems to be the most common answer to that question on google

ME
Ok thanks! I'll have a look
```

Yes please! If you could add the bitcode check that will be really helpful! Especially for people like me who are scared of terminals...

append delete #13. Pierre-Marie Baty

I see you have run the command in a PowerShell terminal. Don't use PowerShell, use the normal Windows command prompt (cmd.exe) instead.

append delete #14. Jay

Thank you so much for your help! I've submitted for review successfully :)

Reply

(Leave this as-is, it’s a trap!)

There is no need to “register”, just enter the same name + password of your choice every time.

Pro tip: Use markup to add links, quotes and more.

Moderators: Pierre-Marie Baty