This problem seems to be very watchOS specific, and thus somewhat outside of my area of expertise )-:
I created a test app from the watchOS > iOS App with Watch App template, set up the deployment targets as you suggested, did a Product > Archive, and then exported a
.ipa for uploading to the App Store [1]. Consider this:
Code Block % unzip -l Test664300.ipa |
… |
… Payload/ |
… Payload/Test664300.app/ |
… Payload/Test664300.app/_CodeSignature/ |
… Payload/Test664300.app/_CodeSignature/CodeResources |
… Payload/Test664300.app/Base.lproj/ |
… Payload/Test664300.app/Base.lproj/Main.storyboardc/ |
… |
… Payload/Test664300.app/Base.lproj/LaunchScreen.storyboardc/ |
… |
… Payload/Test664300.app/Watch/ |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/ |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/_CodeSignature/ |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/_CodeSignature/CodeResources |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/Test664300 WatchKit App |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/PlugIns/ |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/PlugIns/Test664300 WatchKit Extension.appex/ |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/PlugIns/Test664300 WatchKit Extension.appex/_CodeSignature/ |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/PlugIns/Test664300 WatchKit Extension.appex/_CodeSignature/CodeResources |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/PlugIns/Test664300 WatchKit Extension.appex/Test664300 WatchKit Extension |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/PlugIns/Test664300 WatchKit Extension.appex/embedded.mobileprovision |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/PlugIns/Test664300 WatchKit Extension.appex/Info.plist |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/Base.lproj/ |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/Base.lproj/Interface.plist |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/_WatchKitStub/ |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/_WatchKitStub/WK |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/embedded.mobileprovision |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/Info.plist |
… Payload/Test664300.app/Watch/Test664300 WatchKit App.app/PkgInfo |
… Payload/Test664300.app/Test664300 |
… Payload/Test664300.app/embedded.mobileprovision |
… Payload/Test664300.app/Info.plist |
… Payload/Test664300.app/PkgInfo |
… WatchKitSupport2/ |
… WatchKitSupport2/WK |
… |
Note that there are two copies of
WK, one in
_WatchKitStub and another in
WatchKitSupport2.
I then unpacked the
.ipa and saw this:
Code Block % codesign -d -vv "Payload/Test664300.app/Watch/Test664300 WatchKit App.app/_WatchKitStub/WK" |
… |
Identifier=com.apple.WK |
… |
Authority=Software Signing |
Authority=Apple Code Signing Certification Authority |
Authority=Apple Root CA |
… |
% codesign -d -vv WatchKitSupport2/WK |
… |
Identifier=com.apple.WK |
… |
Authority=Software Signing |
Authority=Apple Code Signing Certification Authority |
Authority=Apple Root CA |
… |
Both are signed in the same way, by Apple, with the
com.apple.WK code signing identifier. This makes sense given that they are stubs inserted by Xcode. What’s weird is why the App Store thinks that one of them is in a bundle.
Of the two it seems most likely, given the error message you reported, that the issue with the first one. Unfortunately I’ve no idea what the problem is.
At this point I’m going to admit defeat and suggest that you open a
DTS tech support incident and talk to one of DTS’s watchOS specialists.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@apple.com"[1] I can’t actually upload it to the store myself, alas.