Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Invalid Swift Support - The SwiftSupport folder is missing" with Xcode 7.3.1

After submitting an app update using Application Loader, I got this email from Apple:

We have discovered one or more issues with your recent delivery for "[App Name]". To process your delivery, the following issues must be corrected:

Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.

Once these issues have been corrected, you can then redeliver the corrected binary.

I have confirmed that this binary was built with the latest Xcode GM (7.3.1), so that is not the issue. I have seen a wide variety of potential fixes for this problem online but was hoping that by giving further details somebody might be able to help me figure out the specific solution.

  • Submitted an IPA file using Application Loader 3.5 with no problems.
  • The previous version of the app does not use Swift, but this update does.
  • The "Embedded Content Contains Swift Code" build setting is set to NO. My understanding is that this should only be YES if we have a pure Objective-C target that depends on a Swift or mixed target.
  • The project uses CocoaPods, but nothing has changed in our pods for this update.
  • The previous version of the app included a WatchKit app and extension, but this update does not.
  • Inside an xcarchive generated with the same build, the SwiftSupport folder is there. It contains a subfolder called iphoneos which contains several Apple Swift libraries like libswiftFoundation.dylib.
  • If I rename the .ipa file to .zip and unarchive it, its app package does not contain a SwiftSupport folder, but does contain a Frameworks folder with the same Swift dylibs.
like image 513
Luke Avatar asked Aug 16 '16 18:08

Luke


2 Answers

The solution here was in this answer. We needed to use the new -exportOptionsPlist flag with xcodebuild instead of the older -exportFormat and -exportWithOriginalSigningIdentity flags. The plist just needs to have the method key set to app-store.

like image 170
Luke Avatar answered Sep 28 '22 18:09

Luke


The root cause of this is that the provisioning profile is ad-hoc and it doesn't create SwiftSupport directory in the ipa. The folder is created using app-store as the export method, so it worked for me when I updated my provisioning profile to app-store.

Reference

like image 43
Taku Avatar answered Sep 28 '22 18:09

Taku