- 删除分组实体:分组视图/编辑器/仓储与 groupId 全部移除,升级首启清理 instance-groups.json 与 fleet.groupMode - 新增批量标签表:三态覆盖度(未贴 / N/M / 全部),整批加减与新建标签 - 配色重构,全应用零蓝色:石墨墨色承担主操作与选中态,颜色只留给状态语义; 浅色改中性冷灰,深色改低明度石墨三层 - 选中态改实心主色 + onPrimary,替换不可读的低透明度色雾(主题块、图例胶囊) - 应用图标重做为扁平石墨底 + 黄铜 SIM 面板,参数化光栅化脚本与参考稿 - 运行概览:检测进度并入副标题,读数栅格固定八格两行并保留不可用占位 - 实例详情:仪表改两列发丝线栅格,缺数据留轨道,修掉头部高度回弹; 补齐设备名称/存储总量/可用存储/使用率四个字段名 - 版本号显示去掉括号,设置页只显示 0.2.2 - 文档:新增 docs/ios-native-0.2.2.md,同步 ios-native.md 与两处 README
57 lines
2.5 KiB
Markdown
57 lines
2.5 KiB
Markdown
# MultiSimAdmin iOS
|
||
|
||
iPhone 原生应用的 Swift Package。产品与技术说明见 [docs/ios-native.md](../../docs/ios-native.md),
|
||
本文件只写这个目录里怎么动手。
|
||
|
||
## 目录
|
||
|
||
```text
|
||
Sources/MultiSimAdmin/
|
||
AppMetadata.swift 版本号与 Bundle ID 的唯一来源
|
||
MultiSimAdminApp.swift 入口、三个底部 Tab、调试直达参数
|
||
Models/ 实例、标签、查询等值类型
|
||
Features/{Fleet,Device,Messages,Logs,Settings}/ 页面与 view model
|
||
Upstream/ 路由白名单、HTTP 客户端、按实例隔离的会话 Cookie
|
||
Services/ 连接探测、凭据存储、依赖装配
|
||
Persistence/ 沙盒 JSON 文件仓储与日志存储
|
||
Theme/ 颜色令牌、按钮与卡片样式、骨架、主题模式
|
||
Support/ 错误文案、时间显示、调试启动
|
||
Resources/ Info.plist、Assets.xcassets
|
||
Tests/MultiSimAdminTests/ 48 个用例
|
||
Design/ 图标生成脚本与参考稿
|
||
```
|
||
|
||
## 常用命令
|
||
|
||
```bash
|
||
swift build
|
||
swift test
|
||
xcodebuild -scheme MultiSimAdmin \
|
||
-destination 'platform=iOS Simulator,id=<UDID>' \
|
||
-configuration Debug build
|
||
swift Design/generate_app_icon.swift \
|
||
Sources/MultiSimAdmin/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon1024.png
|
||
```
|
||
|
||
未签名 IPA 从仓库根目录执行 `./scripts/build-ios-ipa.sh` 生成。
|
||
|
||
## 发版要改的地方
|
||
|
||
版本号必须四处一致,否则测试会失败:
|
||
|
||
1. `Sources/MultiSimAdmin/Resources/Info.plist` 的 `CFBundleShortVersionString` 与 `CFBundleVersion`
|
||
2. `Sources/MultiSimAdmin/AppMetadata.swift`
|
||
3. `Tests/MultiSimAdminTests/AppMetadataTests.swift`
|
||
4. `Tests/MultiSimAdminTests/SettingsViewModelTests.swift`
|
||
|
||
改完补一份 `docs/ios-native-<version>.md` 发布说明,并同步更新 `docs/ios-native.md`、仓库根
|
||
README 的版本引用。
|
||
|
||
## 界面约定
|
||
|
||
界面不含任何蓝色:主操作、选中态、进度填充一律用石墨墨色(`AITheme.primary` / `AITheme.ink`),
|
||
颜色只留给状态语义——危险红、告警琥珀、成功绿,且只在真的表示状态时出现,健康读数保持墨色。
|
||
选中态用实心主色加 `onPrimary` 文字,不用低透明度色雾,浅色深色两套主题下都必须一眼可读;
|
||
同屏并排控件等高;选中态不得改变控件尺寸;标签统一 28pt 胶囊;卡片内部不再嵌套卡片,
|
||
并列读数改用发丝线分隔的栅格;不得出现因配色而在深色背景上消失的按钮或文字。
|