6

We develop Watchkit app about 1.5 month, and we used Xcode 6.2 beta2,beta4, Xcode 6.3 beta to develop before and now use Xcode 6.2 (6c131e) to develop

We use Xcode 6.2 (6c131e) to archive our project , and use Application loader to submit our app.

And then we received the rejection:

"The bundle contains an invalid implementation of WatchKit. The app may have been build or signed with non-compliant or pre-release tools. Visit developer.apple.com for more information. "

anyone help me , thx.

Guo Luchuan
  • 4,729
  • 25
  • 33
  • Make sure you do a clean build with the non-beta Xcode 6.2. – rmaddy Mar 10 '15 at 20:34
  • 1
    I'm still seeing this, despite the fact that Apple opened up WatchKit submissions today. Did you find a solution? – Max Meyers Apr 01 '15 at 02:15
  • I got this error too. I submitted a build to the App Store that included a Watchkit extension, and it said that TestFlight does not support apps with Watchkit extensions. So then in the main app's target settings I removed the Watchkit extension as an embedded binary. I built and shipped and got this error about invalid implementation of WatchKit. Sigh. – bdmontz Apr 02 '15 at 21:51
  • Hey any luck on this issue? we are also facing same issue. – Gaurav Apr 21 '15 at 17:25

5 Answers5

15

Apple Watch apps are now accepted into the App Store as of Tues. March 31.

However, for folks using the old submission workflow of submitting a zipped .app will hit this error because zipped apps are no longer supported for apps that contain a watch extension. Follow these steps to generate a submittable .ipa file instead.

Supporting Raw Zip Watch App Submissions App Store import validation ensures that watch app submissions include additional files alongside the submitted bundle that are generated by Xcode. This prevents you from using the old submission workflow of submitting a zipped app file using Application Loader.

However, if you have a build process which currently prevents submitting the watch app using Xcode, you may use the following process to generate the necessary .ipa file to be submitted using Application Loader:

  1. Create a directory named WatchKitSupport as a sibling to Payload
  2. Copy a binary named "WK" from the iOS 8.2 SDK in Xcode to your new WatchKitSupport directory. This binary can be found at: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/Library/Application Support/WatchKit/
  3. Do not touch or re-sign the WK binary in any way
  4. Compress everything into a zip and rename the file extension to .ipa

Note: You may compare your .ipa with one generated by Xcode by exporting an .ipa from an archive of a new Xcode project template for which you have added a watch target.

The format of the resulting IPA should contain (at least):

myApp.ipa |________Payload/ |________Symbols/ |________WatchKitSupport/ |_____WK

Edit: The .dSYM corresponding to the built .app goes in Symbols/. You can always find it alongside the .app in the built products folder, or in dSYMs of an .xcarchive.

Bobjt
  • 4,040
  • 1
  • 29
  • 29
  • What about the Symbols directory - what files go in there? I see some files there in the exported IPA but it has some symbol files that are names with uuids – RPM Apr 07 '15 at 22:34
  • The .dSYM corresponding to the built .app goes in Symbols/. You can always find it alongside the .app in the built products folder, or in dSYMs of an .xcarchive. – Bobjt Apr 16 '15 at 20:00
  • Hey Bob, Apple is still rejecting a new version of our app for Invalid WatchKit Support (previous version with WatchKit support was released successfully on April 23rd) after trying these steps. Any other ideas? – sethfri May 12 '15 at 20:49
  • 1
    It turns out there was a .DS_STORE file in our WatchKitSupport directory that we created. After removing this, Apple accepted the app. – sethfri May 13 '15 at 00:35
  • Tried using the same folder structure as described, now I get "The IPA is invalid. It does not include a Payload directory", any idea. – hv88 May 17 '15 at 06:28
  • Thanks so much for this - I've raised as a bug report with Apple, radar 21172144 – Pete May 30 '15 at 13:42
0

While uploading apple watch app, it need to have apple watch extension into embedded binary of iOS app. But if you are habbitat to delete derived data then xcode6 will delete that target. and when you submit it to apple it will only get ios app not apple watch app.enter image description here

enter image description here Adding Embedded Binaries fails in Xcode Xcode won't link framework form separate project App crashes on device because of missing framework, works in simulator Overview

After deleting the "DerivedData" folder (or performing a "Product > Clean") in xcode6, I cannot add CocoaTouch frameworks from another project to the "Embedded Binary" section (under General tab).

Or, Xcode hits a linker error because it cannot find a framework that if previously could.

Other symptoms

Clicking on the + under "Embedded Binaries" shows the Framework selector but selecting a framework in different project in the workspace does nothing.

Gaurav
  • 8,227
  • 4
  • 34
  • 55
0

As @bobjt stated above, the old way up uploading a .zip file via the Application Loader is no longer valid for apps that contain a WatchKit app/extension.

I was able to upload a valid binary by building my app and then going to Product>Archive>Submit to App Store.

aasatt
  • 600
  • 3
  • 16
-1

You can't submit WatchKit apps at the moment. Please wait for an official Apple announcement.

BalestraPatrick
  • 9,944
  • 4
  • 30
  • 43
-1

I had the same issue. I solved it by putting the correct image assets to the App Icon & uploaded the app through Xcode not the Application Loader. I archived the app from Xcode & validated it. After that I submitted it through Xcode.