Complications Unavailable on iOS When Adding Custom Watch Face (App Store Build), But Works Fine on watchOS & in TestFlight​

Hi Apple Developer Community,

I’m encountering an issue with complications (复杂功能) in my Apple Watch app after releasing it to the App Store. Here’s the scenario: During development and TestFlight testing, complications work correctly. Users can add the custom watch face from the iPhone and all complications display properly. After releasing to the App Store, when users try to add the same custom watch face from their iPhone, they see the error: “Complications Unavailable”​ (复杂功能不可用). However, if users add the watch face directly from their Apple Watch, complications load and work normally. Environment Details: watchOS: 26.3 iOS: 26.3.1 Xcode: 26.2 Distribution: App Store (release build) What I’ve tried so far: Verified that the complication data source is properly configured in the WatchKit extension. Confirmed that the app’s bundle ID and App Groups are consistent across debug and release configurations. Ensured that the complication entitlements and privacy permissions are declared in both iOS and watchOS targets. Tested with multiple devices and different Apple Watch models—the issue persists only when adding the watch face from the iPhone (App Store build). Key Question:​

Could this be related to how the iOS-Watch complication handshake is validated in App Store builds? Or is there a known issue with complication availability when the watch face is added via iPhone vs. directly on the watch?

Any insights, debugging tips, or references to similar resolved issues would be greatly appreciated. Thank you!

Thank you for your post and for your patience in awaiting a response. I initially anticipated a response from an Apple Watch engineer. However, your post may benefit from additional information or a link to the App Store where the app can be downloaded to add the complication and observe the issue? As I’m not an expert on that.

Is your complication using WidgetKit or ClockKit? Please provide as much background information as possible and take a look at this documentation if you haven’t done it before:

https://aninterestingwebsite.com/documentation/widgetkit/converting-a-clockkit-app

When a user downloads your app from the App Store, the iPhone’s Watch app which is responsible for configuring the watch face on iOS attempts to read the complication descriptors/metadata from your iOS app's bundle or the bundled Watch app. Ask a user to download the app from the App Store, launch the iOS app, launch the watchOS app, and then try to add the custom watch face from the iPhone. Is that working?

Since you cannot attach Xcode directly to an App Store build, you must rely on device syslogs. You will likely see an error like NTKComplicationDataSource rejected: bundle ID not found, Failed to load widget descriptor, or **** decryption failed. All those errors will be good to share here for engineers to help you better.

Albert
  Worldwide Developer Relations.

Complications Unavailable on iOS When Adding Custom Watch Face (App Store Build), But Works Fine on watchOS & in TestFlight​
 
 
Q