ReviewOS

craft-native/craft

Deep links: receiving works, registering doesn't — nothing writes CFBundleURLTypes

#53
Closed glennmichael123 opened this 11 days ago ·
11 days ago

The receive path is genuinely done: macos_deep_link.zig registers a kAEGetURL AppleEvent handler, delivers through __craftDeliverDeepLink, and buffers a URL that arrives before the page loads. But nothing can cause macOS to send one:

  • macos_deep_link.zig:24 says outright that scheme registration is not automated.
  • macOSInfoPlist (package.ts:604-621) emits no CFBundleURLTypes.
  • urlSchemes exists as a type field (types.ts:1556,1723) that nothing consumes.

So an app that declares urlSchemes: ['myapp'] typechecks, packages, and never receives a link. (Android has the better half here — renderAndroidDeepLinks is real.)

Ask: make packageApp consume urlSchemes into CFBundleURLTypes in the generated Info.plist, and fail loudly if deepLink.onUrl is reachable but the bundle declares no schemes. Concrete downstream use waiting on it: harness://pair?code=… would turn stacksjs/harness's device pairing from type-a-code into one tap.

🤖 Generated with Claude Code

Sign in to comment on this issue.