# Platform Differences

The app provides a consistent core workflow across platforms, but some capabilities vary due to OS permission and API constraints. **iOS differs the most from desktop**: there is no equivalent to Windows/macOS-style continuous background clipboard monitoring; more work happens in the foreground, via Share Sheet, and via Shortcuts.

## Capability overview

| Capability | Windows | macOS | Android | iOS |
|------------|---------|-------|---------|-----|
| Clip history capture | Supported | Supported | Supported | Supported (visibility often depends on foreground use and trigger path) |
| Nearby Sync | Supported | Supported | Supported | Supported |
| Cloud Sync | Supported | Supported | Supported | Supported |
| System-level paste shortcut chain | Supported | Conditional | Conditional | Constrained (not the same programmable global hotkey model as desktop) |
| Background clipboard monitoring | Supported | Conditional | Conditional | Constrained (no continuous OS-level background listener; relies on foreground / Share / Shortcuts, etc.) |

> [!INFO] “Conditional” vs “constrained”
> **Conditional**: available with extra permissions, OS constraints, or setup. **Constrained**: the OS policy prevents a desktop-equivalent implementation; use alternative paths to reach the same goals.

## Platform-specific guidance

:::tabs
:::tab{label="Windows"}

- Best support for deep system integration and hotkey-heavy workflows.
- Recommended baseline: clip history + Nearby Sync + Win+V replacement workflow.

:::
:::tab{label="macOS"}

- Privacy permissions are critical (for example, input monitoring and accessibility).
- If shortcuts fail, check permissions and key conflicts first.

:::
:::tab{label="Android"}

- Behavior may vary by OEM power management and background restrictions.
- On Android 10+, pick a background monitoring method (Shizuku / Accessibility / Root) that matches your device policy.

:::
:::tab{label="iOS"}

- Strictest clipboard timing and background rules; start with [iOS platform overview](/advanced/ios/).
- For “copy and record,” plan around Share Sheet, Shortcuts, and returning to the app; see [Clipboard background monitoring](/features/source/background-monitoring/).
:::
:::

## Distribution channels: store vs. direct-download

Beyond OS-level capability differences, **on the same platform** Octoclip can also ship through **two installation channels**:

- **Store build** — installed from an app store (Google Play, App Store, Microsoft Store, etc.), updated through the store, and tied to your store account.
- **Direct-download build** — installed from [octoclip.app](https://octoclip.app) and updated in-app.

The two builds share the **same core functionality** — sync logic, clip history, Quick Input, aliases, favorites, and storage all behave identically. Differences only come from app-store policy.

> [!INFO] Why the difference exists
> App stores tightly restrict certain permissions and capabilities (for example: reading SMS, screen capture, system-level accessibility, unsigned plugins). To keep the store build publishable, we **remove** those restricted capabilities from the store build. The direct-download build isn't bound by store policy and can keep them.

### Current status per platform

| Platform | Store build | Direct-download build | Differences today |
|----------|-------------|------------------------|--------------------|
| Android | Google Play | APK (octoclip.app) | **Yes** — see below |
| iOS / iPadOS | App Store | — | Store build only |
| macOS | App Store | Direct download (planned) | **Planned** |
| Windows | Microsoft Store | — (planned) | Store build only |
| Linux | — | — | Planned |

### Android: current differences

| Clip source / capability | Direct-download (APK) | Store (Google Play) |
|----------------------------|:---------------------:|:-------------------:|
| Clipboard source (system copy) | ✓ | ✓ |
| Notification source | ✓ | ✓ |
| Cross-device sync, clip history, Quick Input, aliases, favorites | ✓ | ✓ |
| Background persistence & accessibility service | ✓ | ✓ |
| **SMS source** (capture incoming SMS as clips) | ✓ | — |
| **Screenshot source** (extract content from screenshots) | ✓ | — |

> [!INFO] Why these two
> Google Play tightly restricts `READ_SMS`-class SMS permissions and `MediaProjection` screen-capture usage. A clipboard utility cannot pass review with these as declared use cases. To keep the store build shippable, we disable both sources in the store build.

### How to tell which build is installed

Open the app and go to **Settings → About**. The build channel is labeled as "Store build" or "Direct-download build", along with the installation source.

### Switching between builds

:::steps
:::step{title="Confirm your current build channel"}

Check **Settings → About** to see which build you currently have.

:::
:::step{title="Enable Cloud Sync before switching"}

Local clip history and local settings **do not** migrate automatically. Enable Cloud Sync first to avoid losing data.

:::
:::step{title="Uninstall and reinstall from the target channel"}

Uninstall the current build, then install from the target channel (app store or octoclip.app).
:::
:::

### Which one should I pick?

:::tabs
:::tab{label="Store build (recommended)"}

- Automatic updates and store-account management
- Sufficient for most users
- Easy to reinstall on new devices via your store account

:::
:::tab{label="Direct-download build"}

Use this when you need a capability that the store build had to remove:

- **Android**: automatic SMS verification-code capture, screenshot content extraction
- **macOS** (planned): if a future system-level capability ends up direct-download only
:::
:::

## Troubleshooting order

:::steps
:::step{title="Validate system permissions"}

Most cross-platform issues are permission-related.

:::
:::step{title="Validate platform constraints"}

Check OS version, vendor policy, and network restrictions.**On iOS, also confirm foreground / Share / Shortcuts paths before assuming a defect.**

:::
:::step{title="Validate app settings"}

Review shortcut mapping, sync scope, and background policy.
:::
:::

## Related docs

:::cards{cols=2}
:::card{title="Windows advanced features" icon="lucide.monitor" href="/advanced/windows/"}
Windows-specific capabilities and setup paths.

:::
:::card{title="Android platform overview" icon="lucide.smartphone" href="/advanced/android/"}
Background paths and OEM variance.

:::
:::card{title="macOS platform overview" icon="lucide.laptop" href="/advanced/macos/"}
Permissions and desktop-class behavior.

:::
:::card{title="iOS platform overview" icon="lucide.smartphone" href="/advanced/ios/"}
Foreground, Share, and OS limits.

:::
:::card{title="Settings overview" icon="lucide.sliders-horizontal" href="/advanced/settings"}
Tune parameters based on platform behavior.
:::
:::
