Swift package (iOS)
Add the package by URL in Xcode, or in a manifest:
Current limits:
- The storage providers (the Keychain MLS store and the protocol-state file store) are not yet public, so an application cannot construct them from the package.
- Wiring the transport managers to the engine is the application’s job. A public entry point that does both is planned for this package.
Offline-Protocol/offline-protocol-swift is generated by the SDK’s release workflow; changes made there are overwritten. File issues in the SDK repository. The same release also attaches the XCFramework (offline-protocol-0.28.0-swiftpm-xcframework.zip, offline-protocol-0.28.0-ios-xcframework.zip) and the assembled package (offline-protocol-0.28.0-swift-package.tar.gz).
The iOS peer-stream manager uses Network framework, so the interoperability break with 0.27 applies here as well. Declare the Info.plist keys in iOS peer streams before enabling that transport.
Android bindings
The Android library has Maven coordinates (com.offlineprotocol:offline-protocol-sdk), but it is not published to Maven Central. Download offline-protocol-0.28.0-android.zip from the v0.28.0 GitHub release. It contains:
Add the Kotlin file to your app’s sources and copy each ABI directory under
app/src/main/jniLibs/. The bindings load the library through JNA, so add JNA as an Android archive; the SDK builds against 5.19.1:
bindings/kotlin in the SDK repository (JDK 17, Android SDK and Gradle 8.9); see its README. The library’s floor is Android 7 (API 24), compiled against API 34.
The Android integration guide shows the bindings in Kotlin.
Desktop native libraries
The same release attaches the native library forlinux-x86_64, linux-aarch64, macos-arm64 and windows-x86_64. Python users get these inside the PyPI wheels; Rust users build from the crates.
