Files
telegram-tui/docs/ios/release-checklist.md
2026-05-20 23:50:53 +03:00

47 lines
2.5 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 full Xcode, accept the license, and verify `scripts/check-ios-prereqs.sh`.
2. Build the fake-backed simulator shell with `scripts/build-ios-simulator-app.sh`.
3. Launch the fake-backed simulator shell with `scripts/run-ios-simulator-app.sh`.
4. Create the Xcode app project or wire the Swift package into an Xcode app target for signing/archive.
5. Add app icon, launch screen, bundle id, signing team, notification capability, and entitlements.
6. Build TDLib for simulator and device architectures.
7. Package Rust static libraries and generated UniFFI Swift/header/modulemap output into an XCFramework.
8. Run simulator smoke with fake bridge.
9. Run real-device smoke with real Telegram credentials.
10. 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`
- `DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer scripts/build-ios-simulator-app.sh`
- `DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer scripts/smoke-ios-simulator-ui.sh`
- `DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer scripts/build-ios-fake-ffi-xcframework.sh`
- `DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer scripts/check-ios-tdlib-linking.sh` once 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
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.