Set up a watchOS app that installs and runs 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, create an independent watchOS app that doesn’t require an iOS companion.
You can organize a watchOS project in one of two ways:
- Watch-only app
Use this option when creating a new experience that’s only available on Apple Watch, with no related iOS app.
- 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.
Specify the type of watchOS project you want to build 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; create dependent apps only 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 (see Figure 1). In watchOS 6.2 and later, users can make in-app purchases directly on Apple Watch, as well. If you have a watchOS app with an iOS app, the in-app purchases are universal: users make the purchase once, and the content is available on both watchOS and iOS. For more information, see In-App Purchase.
The system downloads and installs the watchOS app directly to Apple Watch for both independent and dependent apps. However, the user can't launch the watchOS app from a dependent 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 build a watch-only app, start a new project in Xcode and choose the App template (see Figure 2).
Xcode divides the project into two sections (see Figure 3). 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 4).
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, perform the following steps:
In Xcode, open the WatchKit Extension’s General tab.
Scroll down to Deployment Info.
Select “Supports Running Without iOS App Installation” (see Figure 1).
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 functionality includes performing 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 can’t use WatchConnectivity as its main source of data, and must be capable of accessing information on its own.