Schnellstart: UESPA mit iOS / macOS (Swift)
Wrapper: uespa-ffi + UniFFI · Ziele: aarch64-apple-ios, -ios-sim, aarch64/x86_64-apple-darwin
1. Konto, App-ID und LicenseCert
Lege im Developer-Portal eine App mit der App-ID deiner Anwendung an und stelle ein LicenseCert aus. Das Zertifikat ist 294 Byte groß, wird offline geprüft und gilt nur für genau diese App-ID. Details: Lizenzen, App-IDs & Mandanten.
2. Einbinden
XCFramework und Swift-Bindings
bash
scripts/cross-build.sh # Apple-Targets
scripts/gen-bindings.sh out/ # out/swift/*.swift + Modulemap ins Xcode-Projekt3. Initialisieren und senden
swift
let cert = Data(base64Encoded: licenseB64)!
let uespa = try UespaClient(port: 0, hostAppId: Bundle.main.bundleIdentifier!,
cert: cert, deviceSeed: deviceSeed)
try uespa.busSubscribe(filter: "home/+/temp")
try uespa.chatSend(peer: peerPk, text: "Hallo")
final class Listener: UespaListener {
func onEvent(event: UespaEventKt) {
if case let .chatMessage(from, text) = event { print(from, text) }
}
}
let listener = Listener()
Timer.scheduledTimer(withTimeInterval: 0.05, repeats: true) { _ in uespa.tick(listener: listener) }Hinweise
- deviceSeed in der Keychain/Secure Enclave halten.
- hostAppId = Bundle-ID; muss zur app_id im Zertifikat passen.
- Das Gerät leitet immer auch Pakete anderer Apps verschlüsselt weiter (Zwangs-Hop) – zugestellt wird nur im eigenen Namespace.
- Rendezvous für Internet-P2P: rendezvous.uespa.io:47401 (UDP), Authority: https://uespa.io/v1/authority.