Set up a watchOS app that can install and run without an iOS companion app.
Apple Watch users have come to expect that the apps on their watches just work, even when they don’t have their iPhones with them. To ensure the best experience for all Apple Watch users, you should create an independent watchOS app that doesn’t require an iOS companion.
You can organize a watchOS project in one of two ways:
As a watch-only app. Use this option when creating a new experience that is only available on Apple Watch, with no related iOS app.
As a watchOS app with an iOS app. Use this option when you have an iOS app and want to provide a watchOS app that delivers a similar or related experience.
You must specify the type of watchOS project when you create the watchOS target. Additionally, if you bundle your watchOS app with an iOS app, you must specify how the watchOS app interacts with the iOS companion.
Independent apps don’t need an iOS companion app to operate properly. Users can choose to install the iOS app, the watchOS app, or both.
Dependent apps rely on the iOS companion to function properly. Only create dependent apps when the watchOS app needs to interact with the companion. Users must purchase and install the watchOS app with its iOS companion. In watchOS 5 and earlier, all watchOS apps are dependent apps.
In watchOS 6 and later, users can purchase watchOS apps directly from the App Store on Apple Watch. The system downloads and installs the watchOS app directly to Apple Watch, regardless of the app type (independent or dependent). For dependent apps, the user can’t launch the watchOS app until the iOS app finishes installing. For more information on specifying whether an app is dependent or independent, see Convert a Dependent App into an Independent App.
Create a Watch-Only App
To create a watch-only app, create a new project in Xcode and choose the App template (see Figure 1).
Xcode divides the project into two sections (see Figure 2). The WatchKit app contains your app’s storyboard and the assets used by the storyboard. The WatchKit extension contains your app’s code.
Xcode also creates three targets for your app (see Figure 3).
The root target is a stub, and acts as a wrapper for your project, so that you can submit it to the App Store. The other two are identical to the targets found in a traditional watchOS project. They represent your WatchKit app and WatchKit extension, respectively.
Convert a Dependent App into an Independent App
If you have a watchOS app that you’d like to convert into an independent app, do the following:
In Xcode, open the WatchKit Extension’s General tab.
Scroll down to Deployment Info.
Select “Supports Running Without iOS App Installation” (see Figure 4).
In Xcode 11 and later, the system enables this setting by default when you create a new watchOS target.
Ensure Your App Runs Independently
Independent apps must function without relying on a companion iOS app. This includes tasks like downloading data, setting up the user’s account, or configuring the app.
Specifically, an independent watchOS app must:
Let users sign in and create new accounts on Apple Watch. For more information, see Authenticating Users on Apple Watch.
Request permission on the watch for any system services that it requires. Users should never need to authorize an app on their iPhone. For example, in watchOS 6 and later, apps that use HealthKit can request user authorization on Apple Watch.
Download data directly to the watch. Independent apps can’t rely on WatchConnectivity to transfer data or files from an iOS companion app. If you need to sync data between devices, consider using CloudKit, or syncing through your own server. For more information, see Keeping Your watchOS Content Up to Date.
Send push notifications, including complication pushes, directly to the watch. For more information, see
For Remote Notifications()
An independent app can use WatchConnectivity to transfer information from its iOS companion app when the iOS device is available. However, the independent app cannot use WatchConnectivity as its main source of data, and must be capable of accessing information on its own.