# Guideline 4.4.1 - Design: Keyboard Extension Requiring Full Access Without Justification

**Guideline:** 4.4.1 · **Store:** Apple App Store · **Severity:** medium · **Fix difficulty:** medium · **Typical turnaround:** 2-8 hours

Canonical URL: https://appstorereject.com/rejections/apple/4/guideline-441-design-keyboard-extension-requiring-full-access-without-justification

## Description

Apple is rejecting your custom keyboard extension because it requests Full Access (the 'Allow Full Access' toggle in Settings) without providing adequate justification for why it needs network connectivity. Full Access gives a keyboard extension the ability to transmit everything the user types to your servers — Apple understandably scrutinizes this carefully. When a keyboard requests Full Access, it gains access to the network, the shared container with the host app, and the ability to send keystroke data externally. Apple requires that you (1) clearly explain to users what data you collect and why, (2) have a visible privacy policy, and (3) actually need Full Access for a core feature — not just analytics or crash reporting. Legitimate reasons for Full Access include: cloud-based predictions or autocorrect (the keyboard needs to query your server), GIF/sticker search (needs network to fetch media), or cloud sync of learned words across devices. Illegitimate reasons: basic analytics, ad serving, or features that work fine without network access. The fastest compliant path is to either remove the Full Access requirement (if your keyboard can function without it) or provide clear in-app disclosure explaining exactly what data is transmitted, why it's necessary, and how it's protected.

## Common variations

- Keyboard extension requests Full Access without justification
- Keyboard does not appear to require network access for core functionality
- Full Access request not accompanied by adequate privacy disclosure
- Keyboard extension lacks clear explanation of data collection practices
- Custom keyboard requests unnecessary permissions

## Example rejection email

```
Guideline 4.4.1 - Design - Extensions

Your keyboard extension requests Full Access but does not appear to require network access for its core functionality. Full Access allows a keyboard to transmit keystroke data over the network, which raises significant privacy concerns.

Apps that include keyboard extensions must clearly explain to the user what data will be collected and how it will be used. The request for Full Access must be justified by functionality that genuinely requires network connectivity.

Next Steps:
Please either remove the requirement for Full Access if it is not essential to the keyboard's core functionality, or provide clear justification and user-facing disclosure explaining what data is transmitted, why network access is required, and how user data is protected.
```

## Resolution steps

## Quick Assessment
- **Risk level:** Medium
- **Resolution path:** Either remove Full Access requirement or add proper justification and disclosure
- **Typical turnaround:** 2-8 hours

## The Fix

### If your keyboard CAN work without Full Access:
01. **Remove the Full Access requirement** — Redesign your keyboard to function in the default sandboxed mode. On-device predictions, static sticker packs, and custom layouts don't need Full Access.

02. **Move network features to the host app** — If your keyboard has network-dependent features (GIF search, cloud sync), consider moving them to the main app and using the shared container to pass data to the keyboard.

### If your keyboard NEEDS Full Access:
01. **Add an in-app privacy disclosure** — Before the user enables Full Access, present a clear screen explaining: what data is collected (keystrokes, usage patterns, etc.), why it's needed (cloud predictions, GIF search), and how it's protected (encryption, retention policy).

02. **Add a privacy policy** — Include a detailed privacy policy accessible from within the app that covers keyboard data specifically.

03. **Explain in Review Notes** — Tell Apple exactly which feature requires Full Access and why it cannot work without network connectivity.

04. **Minimize data collection** — Only transmit what's necessary. If you need Full Access for GIF search, don't also log keystrokes.

05. **Implement App Transport Security** — All network communication from the keyboard must use HTTPS.

## Prevention
- Default to building keyboards that work without Full Access
- Only request Full Access for features that genuinely need it
- Always include privacy disclosure before the Full Access prompt
- Document your data practices in Review Notes proactively

## Appeal guidance

Appeal if your keyboard genuinely needs Full Access for a core feature and you've provided the required disclosures. Explain the specific technical reason (cloud predictions, media search, sync) and point to the in-app privacy disclosure. If Full Access is for analytics only, remove it and resubmit.

## Before / after examples

**Before:** Custom keyboard requests Full Access on first launch with no explanation of why network access is needed; keyboard only provides custom themes and emoji — features that don't require network access
**After:** Custom themes and emoji work without Full Access; GIF search (the one network-dependent feature) is offered as an optional upgrade with a clear privacy disclosure explaining that search queries are sent to the GIF API and no keystrokes are logged
**Why it works:** Only request Full Access for features that genuinely need network connectivity, and always explain to users exactly what data is transmitted.

## Common questions

**Can you appeal a 4.4.1 rejection?**

Appeal if your keyboard genuinely needs Full Access for a core feature and you've provided the required disclosures. Explain the specific technical reason (cloud predictions, media search, sync) and point to the in-app privacy disclosure. If Full Access is for analytics only, remove it and resubmit.

**How long does this typically take to fix?**

Typical turnaround is 2-8 hours (difficulty: medium). After resubmission, most re-reviews complete within 24-48 hours.

---
*Machine-readable source: https://api.appstorereject.com/api/rejections/detail?slug=guideline-441-design-keyboard-extension-requiring-full-access-without-justification*