Xcode 7 GM ITC submission - "Invalid Swift Support" - multiple Swift libraries in WatchKit App

I can (finally) submit without apparent errors, but then I receive this email:


Dear developer,

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

Invalid Swift Support - The Watch OS application has Swift libraries at both /Payload/Xxxx.app/Xxxx WatchKit App.app/Xxxx WatchKit Extension.appex/Frameworks/ and /Payload/Xxxx.app/Xxxx WatchKit App.app/Frameworks/. Remove all of the Swift libraries from one of the locations and resubmit your app.

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

Regards,

The App Store team


I assume it's NOT telling me to edit the ipa to remove the duplicate libraries. But I don't know what Build Settings or other configuration is driving the generation of duplicate libraries in the payload.


Advice?

Answered by 3no in 57223022

I discovered that changing "Embedded Content Contains Swift Code" from YES to NO in the main app build settings (and leaving it set to YES in the extension) would run on the watch (and the phone). At the same time as I uploaded that binary, Apple must have made a change to the ITC backend as my other uploaded builds which had been marked "Invalid Binary" reverted to "Processing" and later passed the screen to "Inactive".


So I submitted the build with "Embedded Content Contains Swift Code" YES in the extension only for review.

I had the same issue, but was a able to fix it by changing an Build Setting:


  1. Open the Build Settings for Xxxx WatchKit Extension
  2. Change "Embedded Content Contains Swift Code" from Yes to No

Changing "Embedded Content Contains Swift Code" from Yes to No in the WatchKit Extension build settings does eliminate the invalid binary/email, but then the watch app doesn't launch on the watch (most likely because the extension is written in Swift). If I change it back to YES (the only change) and install the exported ipa, the watch app installs and runs successfully.


So I'm still stuck.

Accepted Answer

I discovered that changing "Embedded Content Contains Swift Code" from YES to NO in the main app build settings (and leaving it set to YES in the extension) would run on the watch (and the phone). At the same time as I uploaded that binary, Apple must have made a change to the ITC backend as my other uploaded builds which had been marked "Invalid Binary" reverted to "Processing" and later passed the screen to "Inactive".


So I submitted the build with "Embedded Content Contains Swift Code" YES in the extension only for review.

Xcode 7 GM ITC submission - "Invalid Swift Support" - multiple Swift libraries in WatchKit App
 
 
Q