2.5 KiB
2.5 KiB
iOS Release Checklist
Support Matrix
- Minimum iOS: 17.0
- Swift package shell also builds on macOS 14 for local smoke coverage.
- Rust targets: iOS device and simulator targets still need TDLib validation.
- TDLib:
tdlib-rs1.2.0 withdownload-tdlib; iOS packaging is not validated yet. - Bridge: UniFFI 0.31.1 generated Swift bindings.
Required Before TestFlight
- Install full Xcode, accept the license, and verify
scripts/check-ios-prereqs.sh. - Build the fake-backed simulator shell with
scripts/build-ios-simulator-app.sh. - Launch the fake-backed simulator shell with
scripts/run-ios-simulator-app.sh. - Create the Xcode app project or wire the Swift package into an Xcode app target for signing/archive.
- Add app icon, launch screen, bundle id, signing team, notification capability, and entitlements.
- Build TDLib for simulator and device architectures.
- Package Rust static libraries and generated UniFFI Swift/header/modulemap output into an XCFramework.
- Run simulator smoke with fake bridge.
- Run real-device smoke with real Telegram credentials.
- Archive and upload to TestFlight.
CI Gates
cargo fmt -- --checkcargo check -p tele-corecargo clippy --workspace --all-targets --all-features -- -D warningscargo test --workspace --all-featuresscripts/generate-ios-ffi-bindings.shswiftc -typecheckfor generated Swift bindingsswift build --product TeleTuiIOSAppswift run TeleTuiIOSSmokeTestsDEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer scripts/build-ios-simulator-app.shDEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer scripts/smoke-ios-simulator-ui.shDEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer scripts/build-ios-fake-ffi-xcframework.shDEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer scripts/check-ios-tdlib-linking.shonce TDLib iOS artifacts are available
swift test is not currently a CI gate on this host because the CLI Swift toolchain available to the package does not expose XCTest or Testing. The deterministic view-model coverage lives in the executable TeleTuiIOSSmokeTests target until an Xcode test target is introduced.
Rollback
- Disable the TestFlight build in App Store Connect.
- Re-upload the previous known-good archive.
- If the issue is TDLib/session related, revoke the affected build and keep existing accounts on the previous app version.
- Preserve account Application Support directories; do not delete TDLib databases during rollback unless the issue is confirmed to be corrupted local state.