Pill never appears
There are five independent gates the SDK has to pass before the pill shows up. Check each one:Activation link tap does nothing
If yourAppDelegate/SceneDelegate doesn’t implement application(_:open:options:),
scene(_:openURLContexts:), or scene(_:willConnectTo:options:) at all, the SDK’s
automatic swizzle has nothing to attach to and silently does nothing. This is the single
most common cause of “pairing just doesn’t work.”
Fix: call Tappify.handle(url:) manually from
your own URL handling. It’s safe to call unconditionally.
Activation link doesn’t work
If opening an activation link shows a “couldn’t connect to Tappify” toast, the link is no longer valid. By design, the toast is deliberately non-specific about why — the SDK shows exactly one neutral message and never distinguishes the cause. The fix is always the same, regardless of what actually happened to the link. Fix: mint a fresh link from the dashboard’s Review on this device dialog and try again immediately. Activation links are short-lived and single-use by design — see Activating devices for why.Comments not syncing
If comments or replies don’t appear without a manual force-quit and relaunch, this is usually expected behavior rather than a bug:- On internal builds while offline: the SDK holds a 24-hour cached-grace window and keeps showing the last-known state rather than going blank.
- On live (App Store) builds: there’s no offline grace window — the overlay only shows what it can currently confirm with a live check.
- In both cases: there’s no push channel. A change made from the dashboard, or by another reviewer, only shows up the next time the app checks in — cold launch or foreground. Background and re-foreground the app (or pull-to-refresh the thread list) to force a refresh.
SwiftUI screen names look wrong
The automatic screen-name capture names screens after their hosting view controller class, which is often unhelpful for composed SwiftUI views — you’ll see something generic instead of a name that matches what the screen actually is. Fix: add.tappifyScreen("YourScreenName") to the view, or call
Tappify.tagScreen("...") directly. See Screen names.
Swizzling conflicts with another SDK
If activation links stop working after adding another SDK that also swizzles URL-handling methods, the two swizzles are conflicting — this kind of ordering conflict is hard to debug by design, and not worth trying to. Fix: sidestep it entirely. CallTappify.handle(url:) manually from your own URL
handling, rather than relying on both SDKs’ swizzles to cooperate.