1

I'm developing a custom iOS keyboard extension, and I want to detect whether Full Access has been enabled — ideally without requiring the user to open the keyboard first.

I understand that when Full Access is off, the keyboard extension is sandboxed and cannot access shared containers, make network requests, or communicate with its containing app. When it’s on, we can use UserDefaults(suiteName:) or shared app groups to exchange data between the keyboard and the main app.

However, this approach only works after the keyboard has been opened at least once, since that’s the only time the extension actually runs.

What I’m trying to figure out is whether there’s any legitimate or public iOS API, configuration, or indirect method that would let the main app know the keyboard’s Full Access status before the keyboard has ever been launched — something similar to what Grammarly seems to do in its onboarding flow.

I’ve tried:

  • Checking for shared UserDefaults values (works only after the keyboard runs and pass hasFullAccess value from keyboard to main app)

  • Looking through Apple’s Keyboard Extension documentation (no direct API found)

Is there any reliable or Apple-approved way to detect the Full Access state from the containing app immediately, or is this fundamentally impossible due to sandboxing?

Any guidance, even at a high level, would be greatly appreciated.

1 Answer 1

0

Use this condition:

if UIInputViewController().hasFullAccess { // do your thing! } 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.