release(ios): 发布 0.2.1 并重构图标与界面细节
- 应用图标改用与 Web favicon 同源的扁平标记,金色 SIM 卡体加三格递增信号,29pt 下仍可读 - 标签统一为胶囊形状,提高深色主题下的描边权重,避免标签在暗色下消失 - 消息卡片与详情分区卡片收紧行距,单屏信息密度明显提升 - 详情头部指标精简为 4 行,数据模块改为单条读数 - 批量选择勾选框移出名称区域,工具栏控件统一为等高 34pt - 分组编辑器改为点选即生效,移除说明文字与常驻禁用按钮
This commit is contained in:
@@ -1,12 +1,14 @@
|
||||
import Foundation
|
||||
import Darwin
|
||||
#if canImport(UIKit)
|
||||
import UIKit
|
||||
#endif
|
||||
|
||||
struct SettingsRuntime: Equatable {
|
||||
let appName: String
|
||||
let marketingVersion: String
|
||||
let buildVersion: String
|
||||
let platform: String
|
||||
let deviceModel: String
|
||||
let systemVersion: String
|
||||
}
|
||||
|
||||
@MainActor
|
||||
@@ -32,7 +34,7 @@ final class SettingsViewModel: ObservableObject {
|
||||
marketingVersion: AppMetadata.marketingVersion,
|
||||
buildVersion: AppMetadata.buildVersion,
|
||||
platform: "iOS",
|
||||
deviceModel: Self.deviceModel()
|
||||
systemVersion: Self.systemVersion()
|
||||
)
|
||||
await loadStorageLabel()
|
||||
|
||||
@@ -64,14 +66,14 @@ final class SettingsViewModel: ObservableObject {
|
||||
}
|
||||
}
|
||||
|
||||
private static func deviceModel() -> String {
|
||||
var systemInfo = utsname()
|
||||
guard uname(&systemInfo) == 0 else { return "未知设备" }
|
||||
let bytes = withUnsafeBytes(of: systemInfo.machine) { Data($0) }
|
||||
let model = String(
|
||||
decoding: bytes.prefix { $0 != 0 },
|
||||
as: UTF8.self
|
||||
)
|
||||
return model.isEmpty ? "未知设备" : model
|
||||
/// 只报对用户有意义的系统版本,不暴露机器标识之类的原始信息。
|
||||
private static func systemVersion() -> String {
|
||||
#if canImport(UIKit)
|
||||
let device = UIDevice.current
|
||||
return "\(device.systemName) \(device.systemVersion)"
|
||||
#else
|
||||
let version = ProcessInfo.processInfo.operatingSystemVersion
|
||||
return "iOS \(version.majorVersion).\(version.minorVersion)"
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user