Custom keyboard: public API to activate containing app for user-initiated dictation (Guideline 4.4.1)

Product: Vozzy — custom keyboard + containing app for user-initiated dictation. Bundle: br.com.buddyapps.FlowType App Group: group.br.com.buddyapps.FlowType

Flow:

  1. User selects our keyboard in a host app (Notes/Messages).
  2. Without Full Access, QWERTY input works locally.
  3. With Full Access, user taps Microphone to dictate.
  4. Containing app owns mic permission, AVAudioSession, capture, SpeechAnalyzer, Foundation Models.
  5. Keyboard never captures audio; it reflects shared state and inserts via textDocumentProxy.

Already settled (do not re-ask):

  • No public API to identify the host app.
  • No public API to return to the host app.
  • Feedback: FB22247647.

Question (single issue): App Review Guideline 4.4.1 says keyboard extensions must not launch apps other than Settings. Is there any public, App-Review-compliant mechanism for a custom keyboard to request its containing app to activate audio capture for this user-initiated dictation flow?

If yes:

  • Which public API / App Intent surface?
  • Is a visible switch to the containing app required?
  • May the audio session continue while the user returns to the host app?
  • May Stop/Cancel commands travel through an App Group while the containing app is backgrounded?

Our current policy:

  • Launch uses public NSExtensionContext.open (Debug only).
  • Release has no keyboard path that opens the containing app.
  • Release does allow in-place signaling when the app is already resident (App Group command + Darwin notification; launches nothing).
  • We will not enable Release launch without a written answer naming an allowed public mechanism.

App Group payload inventory + retention, Full Access-off QWERTY behavior, onboarding privacy copy.

I do not have a focused Xcode sample because this is an API / App Review policy question, not a crash or incorrect return value. The keyboard extension never captures audio. Debug uses public NSExtensionContext.open; Release compiles that path out. I can attach flow diagrams and a device screen recording.

Related: FB22247647 (return to host — already answered No; not re-asking).

Custom keyboard: public API to activate containing app for user-initiated dictation (Guideline 4.4.1)
 
 
Q