ITMS-90429: Invalid Swift Support

Build the archive, validating and uploading it to App Store Connect - TestFlight is successful from Xcode (16.0, macOS 15.1.1). Although after that the build is rejected stating :

ITMS-90429: Invalid Swift Support - The files libswiftCoreFoundation.dylib, libswiftCoreData.dylib, libswiftCore.dylib, libswiftFoundation.dylib, libswift_Concurrency.dylib, libswiftObjectiveC.dylib aren’t at the expected location /Payload/Runner.app/Frameworks. Move the file to the expected location, rebuild your app using the current public (GM) version of Xcode, and resubmit it.

Cross checked the Archive and .ipa file, where we found that the mentioned .dylib files are actually present inside the "/Payload/Runner.app/Frameworks" folder, and all the ".dylib" files are also present in the "SwiftSupport/iphoneos" folder.

Scenario : using tdLib compilation "libtdjson.xcframework" (embedded & signed) for ios arm64 placed under "Framworks", in my Flutter application, calling methods via "Method Channels", interacting with AppDelegate.swift file where the tdLib methods are being called from the compiled library. All "swift support settings" are enabled in Xcode while archiving and building the application.

Answered by DTS Engineer in 818554022

I see you have a bare dylib named libtdjson.dylib, which is not supported. 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.

You should work with the vendor for that library to get it rebuilt into a .framework bundle to meet that requirement. The XCFramework package you reference should contain the .framework, not a .dylib.

— Ed Ford,  DTS Engineer

The Swift Support Folder :

The Framework Folder:

I see you have a bare dylib named libtdjson.dylib, which is not supported. 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.

You should work with the vendor for that library to get it rebuilt into a .framework bundle to meet that requirement. The XCFramework package you reference should contain the .framework, not a .dylib.

— Ed Ford,  DTS Engineer

ITMS-90429: Invalid Swift Support
 
 
Q