I'm trying to upload a build to app store connect. It's a build from a Unity project with the polyspatial SDK, and I also need to include a c++ library, which I've added as a dylib signed with the same provisioning profile as the app. The profile is an Apple Distribution profile created from an enterprise account.
It succesfully uploads to Appstore connect, but fails with the following error message:
ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.
This is unhelpful as I'm using a current version of Xcode. I've read that it's a provisioning issue, but I'm using the provisioning profile for apple distribution on an enterprise account, not an ad hoc profile.
I've tried manually adding the SwiftSupport folder from the Xcode toolchain to the ipa/xarchive, resign and upload with Transporter, but that doesn't work.
After spending a day trying to troubleshoot this, I'm at a loss. Any help with this is much appreciated.
Note: I can sideload the app onto an AVP with an ad hoc build and ad hoc provisioning profile (I've added the signed dylib to build phases Link with Libraries and Embed Frameworks). Somehow this doesn't need the SwiftSupport?
I also need to include a c++ library, which I've added as a dylib
This is the source of the error message. Pure dylib files are not supported on Apple's platforms except for macOS. Placing content in a bundle says:
iOS, watchOS, and tvOS support third-party frameworks but don’t support third-party standalone dynamic libraries, which are those outside a framework bundle, typically with the .dylib filename extension. The only exception to this rule is the Swift system libraries provided by Xcode.
Treat visionOS as iOS in this context.
This library needs to be built and embedded as a framework, which defines a specific layout of the binary and supporting files on disk within the application bundle. TN2435: Embedding Frameworks In An App is an older, but still relevant resource for how to accomplish this.
If this library is one you build yourself, you may be better off statically linking it, so you can see Creating a static framework for help with that. And if you're getting it from a vendor, or building it outside of your app's build process, then the built framework needs to be placed inside of an XCFramework for consumption by your app. Creating a multi-platform binary framework bundle goes into detail on that subject.
— Ed Ford, DTS Engineer