Cannot build app on Catalyst after updating to Xcode 15.4 RC

We are facing an issue on Catalyst when building our app using Xcode 15.4.

The issue is related to precompiled frameworks and seems to be widespread as it happens with multiple vendors (like Firebase or Braze).

We are using SPM to add these dependencies, for instance:

.package(url: "https://github.com/braze-inc/braze-swift-sdk", from: "8.2.1"),

When building, we get the following error:

clang:1:1: invalid version number in '-target arm64-apple-ios10.15-macabi'

Our macOS deployment target is 12.3. Our iOS deployment target is 15.4.

I will try to create a reproducer I can share but I wanted to share this in case there's a known workaround.

Thanks in advance!

Answered by DTS Engineer in 787783022

I did some rummaging and found a bug that a developer has already filed a bug about this (FB13796155). It might even have been one of the folks on this thread. If so, thank you!

I was mystified as to where that 10.15 in the arm64-apple-ios10.15-macabi triple came from, and I suspect it’s the LSMinimumSystemVersion property of the BrazeKit framework itself:

% cat BrazeKit/BrazeKit.xcframework/ios-arm64_x86_64-maccatalyst/BrazeKit.framework/Versions/A/Resources/Info.plist 
…
<dict>
    …
    <key>LSMinimumSystemVersion</key>
    <string>10.15</string>
    …
</dict>
</plist>

Xcode 15.4 seems to be erroneously folding this into the triple, which doesn’t make sense because macOS and Mac Catalyst version numbers exist in a different namespace.

I was able to get my test project to build by removing the package dependency and adding BrazeKit.xcframework to my app directly. However, I’m working with a toy test app, and this is likely to be bigger ask in a real product. I think your best option might be to stick with Xcode 15.3 until this gets resolved.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I'm having the same issue on Xcode 15.4, and not on 15.3. I can reproduce this issue with these steps:

  1. Create a new iOS app.
  2. Remove Mac for iPad, add MacCatalyst target.
  3. Add Sentry SDK package from https://github.com/getsentry/sentry-cocoa.git, adding Sentry and SentrySwiftUI to target.
  4. Clean build folder, build and run to Mac.

Result:

-> Xcode 15.3, works.

-> Xcode 15.4, initially fails. Build and run again immediately after, works.

On Xcode 15.4, any time that I clean and then build, it first fails and then will succeed. After this the build will always succeed, unless cleaned in between. This has caused our Xcode Cloud builds that recently updated to using Xcode 15.4 to fail, as they just fail and don't try to build again.

Accepted Answer

I did some rummaging and found a bug that a developer has already filed a bug about this (FB13796155). It might even have been one of the folks on this thread. If so, thank you!

I was mystified as to where that 10.15 in the arm64-apple-ios10.15-macabi triple came from, and I suspect it’s the LSMinimumSystemVersion property of the BrazeKit framework itself:

% cat BrazeKit/BrazeKit.xcframework/ios-arm64_x86_64-maccatalyst/BrazeKit.framework/Versions/A/Resources/Info.plist 
…
<dict>
    …
    <key>LSMinimumSystemVersion</key>
    <string>10.15</string>
    …
</dict>
</plist>

Xcode 15.4 seems to be erroneously folding this into the triple, which doesn’t make sense because macOS and Mac Catalyst version numbers exist in a different namespace.

I was able to get my test project to build by removing the package dependency and adding BrazeKit.xcframework to my app directly. However, I’m working with a toy test app, and this is likely to be bigger ask in a real product. I think your best option might be to stick with Xcode 15.3 until this gets resolved.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Thanks for confirming @eskimo. I filed FB13796155 but didn't have permissions to edit the original post to include the feedback ID.

We will stay in 15.3 for now for our Catalyst builds and wait for a future build of Xcode that resolves this. As you mention, embedding the xcframeworks directly is not an option in our app as this is happening with dozens of dependencies.

Thanks again, Pablo

Still no update on apple side? This bug is present and we can't upgrade to 15.4

Getting same issue in Xcode 16 beta too

Thanks for checking. That matches my expectations; the fix didn’t make the Xcode 16.0b1 train.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Using xcode 16.0b1, we get this error when we build, but not when we run. the latter builds and launches the app successfully.

No updates here? Have the exact same issue towards Firebase. They seem to have close the issue on their side as they claim its a Xcode issue: https://github.com/firebase/firebase-ios-sdk/issues/12967

No updates here?

I’m not sure what more updates you’re looking for. Earlier I wrote “the fix didn’t make the Xcode 16.0b1 train”, and I can’t talk about anything beyond that (other than my general recommendation that you retest with any new versions of Xcode that we might seed in the future).

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

It looks like Xcode 16 beta 5 has fixed this issue, at least for me after testing with one app today.

Cannot build app on Catalyst after updating to Xcode 15.4 RC
 
 
Q