从 iOS 17 Observation 迁移至 iOS 16 兼容的 Combine 架构

将最低部署版本降至 iOS 16,以 ObservableObject 替换 @Observable,新增导航与 UI 兼容层,并补充登录冒烟 UI 测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-26 10:16:35 +08:00
parent 0314033a7f
commit 703078352c
127 changed files with 2320 additions and 1465 deletions

View File

@ -8,7 +8,7 @@
import AVFoundation
import Foundation
import Network
import Observation
import Combine
///
enum LivePushPermissionState: Equatable {
@ -158,23 +158,22 @@ final class SystemLiveNetworkMonitor: LiveNetworkMonitoring {
}
@MainActor
@Observable
/// ViewModel SDK
final class LivePushReadinessViewModel {
var cameraPermission: LivePushPermissionState = .unknown
var microphonePermission: LivePushPermissionState = .unknown
var networkState: LivePushNetworkState = .unknown
var prepared = false
var running = false
var errorMessage: String?
final class LivePushReadinessViewModel: ObservableObject {
@Published var cameraPermission: LivePushPermissionState = .unknown
@Published var microphonePermission: LivePushPermissionState = .unknown
@Published var networkState: LivePushNetworkState = .unknown
@Published var prepared = false
@Published var running = false
@Published var errorMessage: String?
let adapterName: String
let sdkStatusText: String
@ObservationIgnored private let permissionProvider: any LivePermissionProviding
@ObservationIgnored private let networkMonitor: any LiveNetworkMonitoring
@ObservationIgnored private let adapter: any LivePushAdapter
@ObservationIgnored private var pushURL: URL?
private let permissionProvider: any LivePermissionProviding
private let networkMonitor: any LiveNetworkMonitoring
private let adapter: any LivePushAdapter
@Published private var pushURL: URL?
init(
permissionProvider: any LivePermissionProviding = SystemLivePermissionProvider(),