Search code examples
ioswatchkitbundle-identifierios-app-group

iOS WatchKit - Error launching watch app "SPErrorInvalidBundleNoGizmoBinaryMessage"


I am trying to build a watchKit app that will allow Two-Way communications between the iPhone App and Watch App. I have setup App Groups and all the proper App Certificates, Provisioning Profiles and Entitlements are set and match up. But I keep getting this error when I try to run the Watch App (no error when running just the iPhone App).

Error:

Error Launching 'MyWatchApp WatchKit Extension' SPErrorInvalidBundleNoGizmoBinaryMessage

I think it has something to do with the Bundle Identifiers, but as far as I can tell everything looks correct. Any suggestions?

Here are my bundle identifiers:

App Group Key: group.com.nitwitstudios.myWatchApp

iPhone App Bundle Identifier: com.nitwitstudios.myWatchApp

Watch App Bundle Identifier: com.nitwitstudios.myWatchApp.watchkit
Watch App WKCompanionAppBundleIdentifier: com.nitwitstudios.myWatchApp

Watch Extension App Bundle Identifier: com.nitwitstudios.myWatchApp.watchkit.extension
Watch Extension WKAppBundleIdentifier: com.nitwitstudios.myWatchApp.watchkit

Note - Changing Watch Extension App Bundle to "com.nitwitstudios.myWatchApp.watchkit" allows me to run the app, but then I never get proper results when trying to communicate Phone -> Watch. This is specified as a bundle identifier problem in Why won't app groups work inside my WatchKit extension?

I have already tried the following with no success:

  • Clean / Clean Build Folder
  • Deleted Derived Data
  • Restarted Xcode

Solution

  • Ok figured it out. I was pretty close. It seems that the WatchKit Extension Bundle Identifier cannot contain the WatchKit App Bundle Identifier.

    So my problem was that

    com.nitwitstudios.myWatchApp.watchkit.extension 
    

    was too similar to

    com.nitwitstudios.myWatchApp.watchkit
    

    Changed my extension identifier to the below and voilà, I can now send two-way messages using MMWormhole library:

    com.nitwitstudios.myWatchApp.extension