Releases: Muskupecli/KeyboardHostBundleID
Releases · Muskupecli/KeyboardHostBundleID
Release list
1.0.1
v1.0.0 — iOS 26.4+ host Bundle ID
First public release of KeyboardHostBundleID.
A drop-in library that lets an iOS keyboard extension (UIInputViewController) resolve the host app's Bundle ID on iOS 16 – iOS 26.4+.
Why this exists
The long-standing _hostPID + PKService + xpc_connection_copy_bundle_id chain breaks on iOS 26.4. This library ships a working replacement based on swizzling _UIKeyboardArbiterClientInputDestination and reading _sourceBundleIdentifier from the arbiter's destination-changed callback — installed via ObjC +load so it runs before UIKit's first dispatch.
What's in this release
KBHostArbiterHook(ObjC, iOS 26.4+): the arbiter swizzle.LegacyHostResolver(Swift, iOS 16 – 26.3): the classic PKService / XPC path, for silent fallback.KeyboardHost.resolve(from:): single unified entry point with automatic version dispatch.- Swift Package Manager + CocoaPods support.
- Bilingual README (EN / 简体中文).
- XcodeGen-based demo app + keyboard extension.
Install
Swift Package Manager
https://github.com/editorss/KeyboardHostBundleID.git
CocoaPods
pod 'KeyboardHostBundleID', '~> 1.0'Usage
import KeyboardHostBundleID
class KeyboardVC: UIInputViewController {
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if let host = KeyboardHost.resolve(from: self) {
print("Host:", host)
}
}
}See README for details and the Example/ directory for a complete working demo.