Reverting from an Independent Watch app, to one that is dependent on an iPhone app

So we checked the: "Supports running without ios app installation", and it updated our app on the app store. Now we are seeing a lot of instances where our users have one version of the Watch app, and another of the iOS companion app. We have also been collecting a myriad of random crashes, and we can't help but wonder if it's due to these apps being out of sync.


We'd like to roll back and test this theory by making the watch app and the iPhone apps dependent on each other again. However, after opting on Apple Connect to "Remove from sale", and then "Remove app", we cannot push a new version with the change.


I get the following error:

ERROR ITMS-90768: "Invalid Bundle. The watch app '[app]' watch extension must have 'WKWatchOnly' or 'WKRunsIndependentlyOfCompanionApp' Info.plist keys set to 'true', since a version of this app that supports standalone watchOS devices is currently available on the App Store"


Does anyone know a way we can get back to having these apps dependent?

Thanks.

Post not yet marked as solved Up vote post of Campbell_PK Down vote post of Campbell_PK
3.2k views

Replies

It is not possible to revert independence.
Reverting to a dependent watch app from an independent one is not possible after the independent watch app has already been uploaded to the App Store.

Regarding the issues you mentioned about the iOS and the watchOS app becoming "unsynced". The idea behind independent and stand-alone watch apps is that they should function completely independent of the iOS app. It should not matter if the iOS app was installed or not. For most apps, this means that there should be a source of truth in a server-side component. For other apps, it is sufficient to use the WatchConnectivity framework to update the counterpart app on the companion device with any data that changed.

It depends on each app if a server-side component, or WatchConnectivity is the right approach. If you still need help after attempting to implement one of these technologies, please submit a technical support incident with DTS.
Hi,

I had Xcode 12 GM change this setting on me without realising. I uploaded a build of my app and released it not knowing my prior setting had been changed by Xcode. Now I cannot revert it. This seems counter intuitive when I did not intend for this setting to be changed.

I relied on the iOS app and Watch app being both installed as I am using HomeKit identifiers which are shared if the app is dependent.

Is it still not possible to revert? I did not do this myself. Xcode 12 changed the default without warning from prior setting I explicitly made in 11.
Unfortunately it's not possible to revert independence. Supports Running Independently of iOS Companion App is automatically selected for new projects, but existing projects are not altered. Would love to know how this happened. Can you please file Feedback with as many details as possible, or perhaps contact DTS?
Thanks for the information. I'm awaiting a callback from DTS today regarding this.

I'm not sure how this occurred. I only realised it had occurred after users started to report issues to me.
After discussion with DTS, it seems this cannot be reverted. I believe it should be revertible as I did not convert it myself. Seems odd to force it without warning but then be unable to revert it.

In case anyone else is reading this because they are tempted to make their watch app work independently, then please think very carefully about it. 

I enabled the WKRunsIndependentlyOfCompanionApp option a year or two ago because my watch app can work independently, so I figured it was worth doing. However the watch app is still best used with the iPhone app (e.g. configuration is easier on the bigger screen). As others have said, ever since I made the watch app independent then every time I release a new version I get complaints from users due to issues caused because either the iPhone app has updated and the watch app has not, or vice-versa.

The worst thing is that I can't roll that change back because of Apple's restrictions. For some reason it is a one-way change. This is why I recommend against making the watch app independent. Even if you think there is no need for a companion iPhone app now there may still be the chance that you may add one in the future (e.g. the bigger screen can be useful for configuration or analysis). So if you choose to make the watch app independent now then you may be setting yourself up for major problems in the future.

I do not understand why Apple cannot simply update both versions of the app regardless of whether the watch app is tagged as being able to work independently. Why would you want a user to have inconsistent versions? And if they can't do that then they should definitely improve the documentation for WKRunsIndependentlyOfCompanionApp. They need to make it clear that enabling that option will cause the watch app and iPhone app to get out of sync with every update, and that once you have made that change then there is no way back in future versions. At the moment that option looks innocuous but can be deadly.

Post not yet marked as solved Up vote reply of cfc Down vote reply of cfc
  • Well I just blew a whole day trying to add WatchConnectivity, only to come to this thread to find out my Watch App should've been dependent. So I'm stuck with: "[WC] WCSession counterpart app not installed", console message. Until Apple either gives me a way to change my Watch App to be a companion app and vice versa (since I seem to only get a one chance to make a business decision about this) I'm pausing development on the Apple Watch. Hopefully in the next WatchOS release they fix this!

  • @cfc you've captured my thoughts, exactly. I also made this mistake at project inception and check on its status periodically. Customer complaints are the biggest issue.

    I was hopeful after reading recently updated documentation, "tn3157-updating-your-watchos-project-for-swiftui-and-widgetkit". However, the limitations remain (both directions). "After adding an iOS companion app and publishing it to the App Store, you can’t roll back to a watch-only app. "

Add a Comment

I do prefer companion app (and business wise, I do think it makes more sense). That's why the technical choice to forbid using WatchKit in the future is so questionable. With companion app, why should we have a part with storyboard and the other SwiftUI. Does not make sense for me.

I have initially created a standalone watch application. What are the options do I have if I want to make it dependent on iOS now? Is the only option to make it happen - to completly rebuild the app with a new name?