Guideline 4.4.1

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

Medium SeverityMedium FixTypical Fix: 2-8 hours0 Reports
Also known as:Keyboard extension requests Full Access without justificationKeyboard does not appear to require network access for core functionalityFull Access request not accompanied by adequate privacy disclosureKeyboard extension lacks clear explanation of data collection practicesCustom keyboard requests unnecessary permissions

Our Take

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.

Resolution Guide

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:

03

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).

04

Add a privacy policy

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

05

Explain in Review Notes

Tell Apple exactly which feature requires Full Access and why it cannot work without network connectivity.

06

Minimize data collection

Only transmit what's necessary. If you need Full Access for GIF search, don't also log keystrokes.

07

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
  • Example Rejection Email

    From:Apple App Review Team
    Subject:Guideline 4.4.1 - Design: Keyboard Extension Requiring Ful
    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.

    Consider Appealing

    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.

    Generate Appeal

    Before & After

    Before — Rejected

    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 — Approved

    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

    What changed: Only request Full Access for features that genuinely need network connectivity, and always explain to users exactly what data is transmitted.

    Community Solutions · 0

    Sign in to share your solution.

    More Guideline 4 (Design) rejections

    View all Guideline 4 rejections