Add iOS simulator launch scripts

This commit is contained in:
Mikhail Kilin
2026-05-20 22:26:53 +03:00
parent 6576a37198
commit 10f4c3a84b
7 changed files with 160 additions and 24 deletions

View File

@@ -1,11 +1,12 @@
# iOS Hardening Notes
Phase 6 real-device validation is blocked on this machine until the Xcode license is accepted.
The local Xcode prerequisite gate now passes with Xcode 26.5 and the iOS 26.5 simulator runtime.
Current local blocker:
Validated commands:
```text
You have not agreed to the Xcode license agreements. Please run 'sudo xcodebuild -license' from within a Terminal window to review and agree to the Xcode and Apple SDKs license.
```bash
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer scripts/check-ios-prereqs.sh
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer xcodebuild -scheme TeleTuiIOSApp -destination 'generic/platform=iOS Simulator' build
```
Implemented hardening hooks:
@@ -14,7 +15,7 @@ Implemented hardening hooks:
- Account switches increment a session generation counter.
- Events are accepted only when both account id and generation match the active session, preventing stale events from a previous account from reaching view models.
Manual smoke still required after Xcode/TDLib device setup:
Manual smoke still required after real TDLib device setup:
1. Auth with real Telegram credentials.
2. Load chats, open multiple chats, send/edit/delete/reply/forward/react.

View File

@@ -11,13 +11,15 @@
## Required Before TestFlight
1. Install full Xcode, accept the license, and verify `scripts/check-ios-prereqs.sh`.
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.
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
@@ -29,6 +31,7 @@
- `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`
## Rollback