Product: Vozzy — custom keyboard + containing app for user-initiated dictation.
Bundle: br.com.buddyapps.FlowType
App Group: group.br.com.buddyapps.FlowType
Flow:
User selects our keyboard in a host app (Notes/Messages).
Without Full Access, QWERTY input works locally.
With Full Access, user taps Microphone to dictate.
Containing app owns mic permission, AVAudioSession, capture, SpeechAnalyzer, Foundation Models.
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).
1
1
562