Files
multi-simadmin/apps/ios
chick 36ce791215 polish(ios): 中性化标签与方向胶囊并收紧详情头部间距
- AITag 拆为两类:不传状态色时是中性归类胶囊(tile 底、发丝描边、墨字,可带 10pt 图标),
  传状态色时才用 14% 色雾与 30% 描边。颜色只服务状态语义。
- 详情页标签改用 AITag(tag, systemImage: "tag"),与节点卡片同一枚形状;头部 VStack 间距
  14 -> 12,读数格 minHeight 62 -> 56,加载完成后不再明显小于下方卡片。
- 消息中心「收件 / 发件」由绿/墨配色改回中性胶囊配 arrow.down.left / arrow.up.right,
  绿色重新只表示健康状态。
- 批量标签表在无勾选时给出「先在节点列表勾选要归类的节点」,不再留空白行。
- 文档:0.2.2 增量记录与校验值更新为 0e4ffb74…;版本号后不再带括号,
  0.2.0/0.2.1/0.2.2 与 README、现行说明统一改写为「0.2.x 构建 N」。
2026-09-15 03:56:31 +08:00
..

MultiSimAdmin iOS

iPhone 原生应用的 Swift Package。产品与技术说明见 docs/ios-native.md, 本文件只写这个目录里怎么动手。

目录

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/                      图标生成脚本与参考稿

常用命令

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 胶囊;卡片内部不再嵌套卡片, 并列读数改用发丝线分隔的栅格;不得出现因配色而在深色背景上消失的按钮或文字。