> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tappify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Team-wide pairing

> Share one device pairing across every app your team ships, signed by the same Apple team.

Without any extra setup, pairing is per-device, per-app: if your team ships three apps, a
reviewer's device needs three separate "Review on this device" pairings, one per app.
Team-wide pairing removes that repetition — pair once on a device, and it covers every app
your team ships that's signed by the same Apple team.

This is entirely optional. Skip it and the SDK works exactly as described in the
[quickstart](/sdk/quickstart) — nothing about baseline integration changes.

## Set it up

<Steps>
  <Step title="Open Signing & Capabilities in Xcode">
    Select your app target, then the **Signing & Capabilities** tab.
  </Step>

  <Step title="Add Keychain Sharing">
    Click **+ Capability** and add **Keychain Sharing**.
  </Step>

  <Step title="Add this access group">
    Add the group below to every app your team wants to share pairing across. You supply the
    fully-qualified string yourself — Xcode doesn't always resolve
    `$(AppIdentifierPrefix)` for you in the capability editor, so double-check the resolved
    value in your build settings if pairing doesn't end up shared.

    <CodeGroup>
      ```xml Entitlements theme={null}
      <key>keychain-access-groups</key>
      <array>
          <string>$(AppIdentifierPrefix)com.tappify.shared</string>
      </array>
      ```
    </CodeGroup>
  </Step>
</Steps>

<Note>
  If an app doesn't have this entitlement, the SDK silently falls back to a private,
  app-only keychain store. Nothing breaks — you just don't get cross-app sharing for that
  app.
</Note>

## What sharing actually shares

The shared item is a pairing credential — proof that "this device belongs to this
reviewer" — not a working session. Each app still exchanges that credential for its own
session the first time it sees it, the same activation step every app goes through
normally; team-wide pairing just means the device doesn't need a fresh QR scan to produce
that credential for every app.

<Warning>
  Authorization stays per-app and per-org. Sharing a pairing credential across apps signed by
  the same Apple team never grants access to an app that belongs to a different Tappify org
  — the backend still checks org ownership independently for every app. Same signing team
  does not mean same Tappify organization, which matters in particular for agencies signing
  multiple clients' apps under one team: pairing a device to one client's app never leaks
  visibility into another client's app, even if both are signed by the same team.
</Warning>

Revoking a device (from any one of the apps it's paired to) revokes its shared credential
too, which ends its session on every app that used it — see
[Activating devices](/sdk/activating-devices#revoking-devices).
