同步 Android 启动页到 iOS,并在冷启动期间静默恢复登录态。
新增 SplashView、SplashCoordinator 与 Launch Screen 资源,移除冷启动 Lottie;LoginView 加载 App 配置。同时将 token 存储迁移至 UserDefaults,并更新相关测试与文档。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -43,12 +43,23 @@ final class SuixinkanApp {
|
||||
hasLaunched = true
|
||||
}
|
||||
dismissSystemAlertsIfNeeded()
|
||||
waitForSplashToDisappearIfNeeded()
|
||||
if waitForLoading {
|
||||
waitForGlobalLoadingToDisappear()
|
||||
}
|
||||
return self
|
||||
}
|
||||
|
||||
/// 等待启动页消失后再继续后续断言。
|
||||
func waitForSplashToDisappearIfNeeded(timeout: TimeInterval = 5) {
|
||||
let splash = application.otherElements["splash.root"]
|
||||
guard splash.waitForExistence(timeout: 2) else { return }
|
||||
|
||||
let predicate = NSPredicate(format: "exists == false")
|
||||
let expectation = XCTNSPredicateExpectation(predicate: predicate, object: splash)
|
||||
_ = XCTWaiter.wait(for: [expectation], timeout: timeout)
|
||||
}
|
||||
|
||||
/// 等待全局 Loading 层消失。
|
||||
func waitForGlobalLoadingToDisappear(timeout: TimeInterval = 45) {
|
||||
let loading = application.staticTexts["加载中"]
|
||||
|
||||
@ -25,7 +25,7 @@ enum UITestSession {
|
||||
return launched
|
||||
}
|
||||
|
||||
/// 以指定首页菜单直达参数重启 App,并复用 Keychain 登录态。
|
||||
/// 以指定首页菜单直达参数重启 App,并复用 UserDefaults 登录态。
|
||||
@discardableResult
|
||||
static func relaunch(
|
||||
openMenu menuTitle: String,
|
||||
@ -44,7 +44,7 @@ enum UITestSession {
|
||||
return relaunched
|
||||
}
|
||||
|
||||
/// 以指定个人中心路由直达参数重启 App,并复用 Keychain 登录态。
|
||||
/// 以指定个人中心路由直达参数重启 App,并复用 UserDefaults 登录态。
|
||||
@discardableResult
|
||||
static func relaunch(
|
||||
openProfile route: String,
|
||||
|
||||
Reference in New Issue
Block a user