Skip to content

D1a0y1bb/Rmitting

Repository files navigation

Rmitting

Rmitting 是一个 macOS 26+ 原生 SwiftUI 待办应用。它以 Apple Reminders 作为真实待办数据源,本机 JSON 保存 Rmitting 自己的分组、分区、排序、归档、最近删除、窗口位置、置顶状态和应用偏好。

功能

  • 新增、完成、编辑、删除待办
  • 待办备注、优先级、截止时间、位置同步到 Apple Reminders
  • 读取所有可写的 Apple Reminders 列表
  • 本机清单在非搜索状态下拖拽排序
  • 本机清单分组
  • 最近删除、恢复、永久删除
  • 归档已完成项目
  • 搜索当前视图内的待办
  • 原生 Settings、菜单命令、toolbar、sidebar
  • 主窗口置顶,默认只在当前桌面空间悬浮
  • 自动读取 Apple Reminders 外部变更

系统要求

  • macOS 26.0 或更高
  • Xcode/Swift 工具链支持 Swift 6.2 和 .macOS(.v26)
  • 同步 Apple Reminders 需要授予完整访问权限

构建和启动

主工程是 Rmitting.xcodeproj,可以直接用 Xcode 打开运行。工程由 project.yml 生成,新增源码文件后可重新生成:

xcodegen generate

命令行构建:

xcodebuild -project Rmitting.xcodeproj -scheme Rmitting -configuration Debug -derivedDataPath /tmp/Rmitting-DerivedData build

Codex Run 按钮和本地脚本也走同一个 Xcode scheme:

./script/build_and_run.sh --verify

脚本默认把构建产物放在:

/tmp/Rmitting-DerivedData/Build/Products/Debug/Rmitting.app

开发时直接启动:

./script/build_and_run.sh

只执行 SwiftPM 测试:

swift test

执行 Xcode 测试:

xcodebuild -project Rmitting.xcodeproj -scheme Rmitting -configuration Debug -derivedDataPath /tmp/Rmitting-DerivedData test

隔离构建目录:

RMITTING_DERIVED_DATA=/tmp/Rmitting-DerivedData ./script/build_and_run.sh --verify

只生成并校验 .app,不启动应用:

./script/build_and_run.sh --package

应用图标来源是 Rmitting.icon,由 Icon Composer 维护。不要手写 icon.json;需要调整 Default、Dark、Mono 外观时,用 Icon Composer 重新导出后再提交。

权限

Rmitting 需要 Reminders 完整访问权限,用于读取现有提醒事项列表,并读写待办、备注、优先级、截止时间和位置。

授权状态由 macOS 管理。已授权后再次启动会直接进入应用;如果拒绝了权限,可以在应用里的授权提示或 Settings 里点“打开系统设置”,然后在 macOS 系统设置里重新开启 Rmitting 的提醒事项权限。授权改完后可点“重新检测权限”,不需要重启应用。

数据边界

Apple Reminders 保存:

  • 标题
  • 完成状态
  • 备注
  • 优先级
  • 截止时间
  • 位置
  • 所属系统 Reminders 列表

本机配置保存:

  • Rmitting 内部分组和分区
  • 排序
  • 归档状态
  • 最近删除
  • 窗口大小位置
  • 置顶状态
  • Rmitting 默认写入列表标识
  • 显示已完成等应用偏好
  • 兼容旧版本 metadata 的提醒/采购偏好字段

Rmitting 不把应用内分组和分区写进 Reminders 备注,避免污染系统提醒事项内容。

签名状态

Xcode Debug 构建使用 “Sign to Run Locally” 本机签名,适合本机开发和验证。

正式分发还需要 Developer ID 证书、hardened runtime 和 notarization。本仓库没有包含这些证书配置。

已知限制

  • 会读取所有可写的系统 Reminders 列表;在 Rmitting 的本机清单里新建项目时,默认写入系统 Reminders 的 Rmitting 列表。
  • 搜索是当前视图内搜索,会匹配标题、备注、位置和系统列表名。
  • 新建待办里的标签会写入备注;EventKit 当前没有公开的 Reminders 标签字段。
  • 最近删除只保证覆盖 Rmitting 内删除的项目;其他设备或系统 Reminders 里删除的项目会从同步结果中移除。
  • 目前没有菜单栏常驻模式,也不跨所有 Space 显示。

About

macOS reminders app for Apple Reminders-backed todos and local organization metadata.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors