Files
ios/Xuxucheck/XuXuCheck/XuXuCheckApp.swift
T
admin d6aeede2bc 导入 XuXuCheck 工程(iOS 干化学尿液试纸分析 App)
从桌面工程复制而来,作为本仓库的 Xuxucheck/ 子目录。

为控制仓库体积做了两处删减:
- 移除 Frameworks/opencv2.xcframework 下的两个 visionOS 切片
  (xros-arm64、xros-arm64-simulator,合计约 106 MB),并同步删掉该
  xcframework 内 Info.plist 里对应的两条 AvailableLibraries 记录,
  只保留 ios-arm64 与 ios-arm64_x86_64-simulator。
- 移除全部 .DS_Store 与 xcuserdata/。

已用 xcodebuild 从本目录完整编译验证:BUILD SUCCEEDED,
ProcessXCFramework 以 --platform ios 成功选中框架,产物含 3699 个 cv:: 符号
(OpenCV 确实链入),嵌入 framework 3 个,与移除无用 pod 之后的状态一致。

仓库约 206 MB,其中 OpenCV 203 MB、其余源码与依赖约 3 MB。
2026-09-23 14:17:31 +08:00

84 lines
2.6 KiB
Swift

//
// XuXuCheckApp.swift
// XuXuCheck
//
// Created by henseycai on 2025/5/26.
//
//some references
//https://www.hackingwithswift.com/quick-start/swiftui/how-to-run-some-code-when-state-changes-using-onchange
//https://developer.apple.com/documentation/swiftui/view/onchange(of:perform:)
//https://github.com/yannickl/DynamicColor/tree/master
import SwiftUI
@main
struct XuXuCheckApp: App {
@State var status = Status()
@State var loginViewModel = LoginViewModel()
@State var cameraViewModel = CameraViewModel()
//https://developer.apple.com/documentation/swiftui/migrating-from-the-observable-object-protocol-to-the-observable-macro
//https://developer.apple.com/documentation/swiftui/managing-model-data-in-your-app
@State var loginStatus = LoginStatus()
@State var webViewModel = WebViewModel()
init(){
loginStatus.isLogin = Storage.shared.isLogin
getSelfData()
}
func getSelfData(){
if(loginStatus.isLogin == false){
return
}
APIService.instance.getSelf(completion: {(model,error) in
if let error = error{
debugPrint(error)
return
}
//Storage.Print()
if let model = model {
Storage.shared.userid = model.data?.userinfo?.user_id ?? 0
//Storage.shared.usertoken = model.data?.usertoken ?? ""
if let usertoken = model.data?.usertoken {
Storage.shared.usertoken = usertoken
}
Storage.shared.mobile = model.data?.userinfo?.user_mobile ?? ""
Storage.shared.email = model.data?.userinfo?.user_email ?? ""
Storage.shared.username = model.data?.userinfo?.user_nickname ?? ""
Storage.shared.useravatar = model.data?.userinfo?.user_avatar ?? ""
Storage.shared.member_id = model.data?.defaultMember?.member_id ?? 0
Storage.shared.member_name = model.data?.defaultMember?.member_name ?? ""
Storage.shared.member_avatar = model.data?.defaultMember?.member_avatar ?? ""
}
})
}
var body: some Scene {
WindowGroup {
ContentView()
.environment(status)
.environment(loginViewModel)
.environment(cameraViewModel)
.environment(loginStatus)
.environment(webViewModel)
}
}
}