39 lines
1.6 KiB
Markdown
39 lines
1.6 KiB
Markdown
# 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-rs` 1.2.0 with `download-tdlib`; iOS packaging is not validated yet.
|
|
- Bridge: UniFFI 0.31.1 generated Swift bindings.
|
|
|
|
## Required Before TestFlight
|
|
|
|
1. Install and select full Xcode with `xcode-select`.
|
|
2. Create the Xcode app project or wire the Swift package into an Xcode app target.
|
|
3. Add app icon, launch screen, bundle id, signing team, notification capability, and entitlements.
|
|
4. Build TDLib for simulator and device architectures.
|
|
5. Package Rust static libraries and generated UniFFI Swift/header/modulemap output into an XCFramework.
|
|
6. Run simulator smoke with fake bridge.
|
|
7. Run real-device smoke with real Telegram credentials.
|
|
8. Archive and upload to TestFlight.
|
|
|
|
## CI Gates
|
|
|
|
- `cargo fmt -- --check`
|
|
- `cargo check -p tele-core`
|
|
- `cargo clippy --workspace --all-targets --all-features -- -D warnings`
|
|
- `cargo test --workspace --all-features`
|
|
- `scripts/generate-ios-ffi-bindings.sh`
|
|
- `swiftc -typecheck` for generated Swift bindings
|
|
- `swift build --product TeleTuiIOSApp`
|
|
- `swift run TeleTuiIOSSmokeTests`
|
|
|
|
## Rollback
|
|
|
|
1. Disable the TestFlight build in App Store Connect.
|
|
2. Re-upload the previous known-good archive.
|
|
3. If the issue is TDLib/session related, revoke the affected build and keep existing accounts on the previous app version.
|
|
4. Preserve account Application Support directories; do not delete TDLib databases during rollback unless the issue is confirmed to be corrupted local state.
|