Skip to content

Repository files navigation

Gold Menu Bar App

一个基于 SwiftUI 的 macOS 菜单栏应用,用于实时监控黄金价格(沪金99 + 伦敦金现货)。

功能

  • 菜单栏实时显示当前选中标的价格
  • 同时监控两个标的:
    • gds_AU9999(沪金99)
    • hf_XAU(伦敦金现货)
  • 30 秒自动刷新 + 手动刷新
  • 失败自动回退(主接口失败后使用 WebView DOM 回退抓取)
  • 涨跌颜色区分(涨红、跌绿、平灰)

技术栈

  • Swift 6
  • SwiftUI (MenuBarExtra)
  • URLSession + 正则解析(主抓取)
  • WKWebView 脚本注入(DOM 回退抓取)
  • XCTest

系统要求

  • macOS 13+
  • Xcode 16.4+(或等效 Swift toolchain)

快速开始

swift run

测试

swift test

生成可分发安装包

./scripts/package_release.sh

默认会在 dist/ 产出:

  • Gold.app
  • Gold-<version>.zip
  • Gold-<version>.dmg
  • Gold-<version>.pkg

可选环境变量:

VERSION=1.0.1 BUNDLE_ID=com.yourcompany.gold ./scripts/package_release.sh

签名(可选):

SIGN_IDENTITY="Developer ID Application: Your Name (TEAMID)" \
PKG_SIGN_IDENTITY="Developer ID Installer: Your Name (TEAMID)" \
./scripts/package_release.sh

未签名包在其他机器上可能触发 Gatekeeper 告警。

项目结构

Sources/Gold/
  App/      # 菜单栏 UI + ViewModel
  Model/    # 数据模型、错误、日志协议
  Service/  # 抓取器、解析器、聚合服务
  Utils/    # 格式化工具
Tests/GoldTests/
  # 解析与服务流程测试
scripts/
  package_release.sh  # 打包脚本

数据来源与说明

  • 数据源:新浪财经行情接口/页面
  • 本项目仅用于学习与信息展示,不构成投资建议
  • 第三方数据源可能变更或限流,请理性使用

License

本项目采用 MIT License

About

macOS menu bar app for real-time gold quotes (Sina crawler)

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages