Add resilient usage analytics, OOBE gateway flows, clipboard semantic ranking, purchase recovery, style learning, and managed current-information search.
11 KiB
App Store Connect — OSGKeyboard 2.0.1 (build 87)
Current metadata baseline for the iOS/iPadOS App Store build. Version and build numbers come from
project.yml. The repository also contains a separate macOS 15+ Developer ID target; it is not this App Store listing.
App information
| Field | Value | Notes |
|---|---|---|
| App name | OSGKeyboard |
≤ 30 characters |
| Subtitle | Voice input, everywhere |
≤ 30 characters |
| Bundle ID | com.osgkeyboard.ios |
iOS host target |
| Version / build | 2.0.1 / 87 |
MARKETING_VERSION / CURRENT_PROJECT_VERSION |
| Minimum system | iOS/iPadOS 26 | iPhone and iPad |
| Primary locale | en-US |
Simplified Chinese is also bundled |
| Primary category | Utilities | |
| Secondary category | Productivity | Optional |
| Age rating | 4+ | No objectionable content |
URLs
| Field | Value |
|---|---|
| Support URL | https://github.com/hkgood/OSGKeyboard/issues |
| Marketing URL | https://hkgood.github.io/OSGKeyboard/ |
| Privacy Policy URL | https://hkgood.github.io/OSGKeyboard/privacy/ |
| EULA | Leave blank; use Apple's standard EULA |
Pricing and availability
| Field | Value |
|---|---|
| Price | Free |
| In-App Purchases | Optional consumables: tip ByRockyACoffee; managed-credit packs 500tks, 1500tks, 3000tks |
| Availability | All configured App Store territories |
| Pre-order | No |
Description (≤ 4000 characters)
OSGKeyboard is a voice and typing keyboard for iPhone and iPad. Speak in
any app and insert the transcript at the cursor, or switch to Chinese and
English typing without leaving the keyboard.
VOICE INPUT
• On-device by default. iOS 26 SpeechAnalyzer and DictationTranscriber
transcribe locally.
• Optional cloud recognition. Use your own provider credentials, or
sign in with Apple and choose managed credits.
• Optional AI polish and translation. Use your own provider API key or
managed credits; without either, recognized text can still be inserted.
• AI keyboard mode. Ask a spoken question, review the generated answer,
then explicitly insert or send it.
• Edit the last verified OSGKeyboard insertion by voice before replacing
or appending the result.
TYPING
• Chinese full pinyin, Microsoft double pinyin, and Sogou double pinyin,
with optional fuzzy-pinyin pairs.
• English autocomplete, autocorrect, and next-word prediction from
offline resources.
• Personal dictionary terms can participate in Chinese candidates,
English suggestions, ASR correction, and polish protection.
• iPhone and iPad layouts, including iPad globe and editing controls.
• Optional clipboard history is off by default and keeps up to 15 text
items from this device or Universal Clipboard in this device's App Group.
Turning it off keeps existing history; clearing is a separate confirmed action.
PRIVACY
• Limited first-party product analytics; no third-party analytics,
advertising, tracking SDKs, ATT, or IDFA.
• Product analytics never includes keyboard input, audio, transcripts,
prompts, model output, credentials, or personal identifiers. It can be
disabled in Settings, which deletes queued events.
• Local recognition does not upload audio.
• User-configured cloud requests go directly to that provider. Managed-credit
requests go through OSGKeyboard's managed gateway to the managed provider.
• Provider keys are stored in Keychain.
• Clipboard history stays device-local, does not iCloud-sync, and is not
sent to AI automatically. Text you insert may later be included when you
actively invoke polish with your configured provider.
• Core use requires no OSGKeyboard account.
OSGKeyboard's own code is source available for audit and personal,
non-commercial local use. It is not MIT-licensed or open source; see the
repository LICENSE for redistribution and commercial-use restrictions.
Requires iOS or iPadOS 26 or later.
https://github.com/hkgood/OSGKeyboard
Promotional text (≤ 170 characters)
Voice input anywhere, with on-device recognition by default. Use your own AI key or optional managed credits for cloud speech, polish, translation, and AI answers.
Keywords (≤ 100 characters)
keyboard,voice,dictation,speech,transcribe,AI,pinyin,Chinese,English,polish,typing,productivity
What's new in 2.0.1
NEW
• A shorter first-run guide teaches dictation, translation, smart reply,
and voice questions before the optional account step.
• Official AI skills can refresh without an App Store update.
• Private typing summaries and local Rime term suggestions improve insights
without retaining typed text.
CHANGED
• iPhone navigation now uses the native iOS 26 Liquid Glass tab bar.
• Voice history retains private paired metadata for future style learning.
FIXED
• Signing out or losing a session now switches every AI path back to BYOK
and blocks cached managed grants from consuming credits.
• Analytics uploads are safer during suspension, purchase confirmations no
longer reappear, and account/settings refreshes are more reliable.
App Review information
| Field | Value |
|---|---|
| Sign-in required | No |
| Demo account | Not applicable |
| Contact info | Maintainer's Apple Developer account details |
Notes to App Review
OSGKeyboard is a custom keyboard for iOS/iPadOS 26.
1. Add the keyboard:
Settings → General → Keyboard → Keyboards → Add New Keyboard →
OSGKeyboard.
2. Enable Full Access. It is required for App Group communication between
the keyboard and host app and for optional provider network requests.
3. Complete onboarding in the OSGKeyboard host app.
4. In any editable field, switch to OSGKeyboard and tap the microphone.
The default local engine uses on-device Apple speech recognition.
5. Local dictation and user-configured providers require no OSGKeyboard
account. The Account tab offers optional Sign in with Apple.
6. After signing in, Settings → AI Service → Use Credits enables the managed
cloud path. The consumable products are `500tks`, `1500tks`, and `3000tks`.
Purchased credits are verified by the account service before StoreKit
transactions are finished.
7. AI polish and AI mode can use either managed credits or a user-owned
provider key. Without either, local dictation still inserts recognized text.
8. Optional tip `ByRockyACoffee` remains a consumable support purchase and
does not grant managed credits or unlock features.
9. Clipboard history is off by default. To test it, open Settings →
Clipboard, enable History, copy text on this device or through Universal
Clipboard, then return to the keyboard. Secure fields hide the clipboard
entry point. Turning History off preserves saved items; use the separate
confirmed clear action to delete them.
10. First-party Product Analytics is enabled by default under Settings →
About → Privacy. Turning it off deletes queued events. It does not collect
keyboard input, audio, transcripts, prompts, model output, or credentials.
Privacy policy:
https://hkgood.github.io/OSGKeyboard/privacy/
Source and license:
https://github.com/hkgood/OSGKeyboard
App Privacy answers
Use conservative disclosures that cover optional cloud recognition, cloud polish/translation, and AI mode even though local recognition is the default.
User Content → Audio Data
- Collected: Yes
- Purpose: App Functionality
- Linked to the user: Yes
- Used for tracking: No
Audio is sent off-device only when the user enables cloud recognition. The configured provider may associate requests with the user's credential. In managed-credit mode, audio is linked to the OSGKeyboard account for service authorization and credit accounting.
User Content → Other User Content
- Collected: Yes
- Purpose: App Functionality
- Linked to the user: Yes
- Used for tracking: No
This covers transcripts and nearby cursor context used for polish/translation, AI questions and skill prompts, optional provider search requests, dictionary terms included in provider prompts, and clipboard text only after the user actively invokes a clipboard skill, names the clipboard in AI mode, or inserts it and requests polish. Skill results may also be handed on-device to an Apple Shortcut, while navigation addresses may be opened in the selected map app. Device-local clipboard history and typing-learning data by themselves are not collected by the developer.
Contact Info → Name
- Collected: Yes
- Purpose: App Functionality
- Linked to the user: Yes
- Used for tracking: No
The display name supplied by Sign in with Apple is optional and is used only for the optional OSGKeyboard account profile.
Purchases → Purchase History
- Collected: Yes
- Purpose: App Functionality
- Linked to the user: Yes
- Used for tracking: No
StoreKit transaction identifiers, product identifiers, and granted-credit results are processed to verify consumable managed-credit purchases, prevent replay, and maintain the account credit ledger.
Identifiers → User ID
- Collected: Yes
- Purpose: App Functionality
- Linked to the user: Yes
- Used for tracking: No
This covers the pseudonymous OSGKeyboard account identifier and scoped managed-service grant identifiers. Core use remains available without an OSGKeyboard account.
Identifiers → Device ID
- Collected: Yes
- Purpose: Analytics
- Linked to the user: Yes
- Used for tracking: No
This is an app-scoped random installation identifier. It rotates when analytics is re-enabled, after account deletion, or when a different account signs in. It is not IDFA and is not used across apps.
Usage Data → Product Interaction
- Collected: Yes
- Purpose: Analytics
- Linked to the user: Yes
- Used for tracking: No
This covers fixed event names for app and keyboard sessions, purchase-page interactions, and invitation actions. It contains no free-form properties.
Usage Data → Other Usage Data
- Collected: Yes
- Purpose: Analytics
- Linked to the user: Yes
- Used for tracking: No
This covers fixed AI feature categories, execution modes, outcome categories, and coarse duration buckets. It does not include prompts, transcripts, model output, audio, or keyboard content.
Do not select
- Advertising, marketing, product personalization, or tracking
- Email address, phone number, physical address, location, contacts, photos, browsing history, or search history
- Usage data or diagnostics stored only locally or in the user's private iCloud
Encryption
Info.plist declares ITSAppUsesNonExemptEncryption = false. Network calls use
standard HTTPS. Re-evaluate this answer if non-exempt cryptography is added.
Submission checklist
- Confirm
project.ymlstill reads version 2.0.1 / build 87 - Open the existing Xcode project (do not regenerate unless needed)
- Run the release build and test suites on macOS with Xcode 26
- Replace screenshots with captures from the submitted build
- Verify the privacy answers against the submitted provider features
- In App Store Connect, add Device ID, Product Interaction, and Other Usage Data for Analytics; linked to the user, not used for tracking
- Confirm
500tks,1500tks, and3000tksare approved, consumable, and mapped to the server credit catalog - Confirm
ByRockyACoffeeremains an optional consumable tip and unlocks no feature - Upload, select build 87, add review notes, and submit