Hi Ziqiao, thanks for looking into this. I'll answer your question about our share flow, then share some significant findings from today's debugging. We use a custom token-based invite flow rather than the standard system share URL tap → userDidAcceptCloudKitShareWith path. Here's the full flow: How we deliver the share URL Owner creates an invite token — stored as an InviteToken record in the public CloudKit database. The token record contains the CKShare.url string, the household ID, and a 7-day expiration. Owner sends a deep link — the invite UI generates a mesa://invite?token= URL and presents a share sheet (Messages, AirDrop, etc.). This is a custom URL scheme, not the CKShare.url directly. Participant opens the deep link — the mesa:// URL opens our app. The app extracts the token, queries the public database for the InviteToken record, and reads the shareURL field to get the CKShare.url. How we accept the share (programmatic path) Once we have the CKShare.url from the token lookup: // 1. Fetch share met
Topic:
App & System Services
SubTopic:
iCloud & Data
Tags: