Skip to content

huyan1349/iturner

Repository files navigation

iTurner

iTurner 液态玻璃项目横幅

一款为 macOS「iPhone 镜像」设计的自动翻页工具。

iTurner 会按照你设定的随机时间区间,在 iPhone 镜像窗口中执行经过验证的按住、滑动、释放手势,并通过一枚轻量的液态玻璃 HUD 显示倒计时、翻页次数与运行状态。

它适合需要连续阅读、展示文稿、复习资料或进行无人值守页面演示的场景。所有识别与控制都在本机完成,iTurner 不会截图、不读取页面文字,也不会上传阅读内容。

当前版本为开源预览版。核心自动翻页、首次引导、可调时间区间、桌面 HUD、菜单栏入口、暂停与退出功能均已实现。

设计原则

  • 先教会用户,再开始工作:首次启动会逐步引导连接 iPhone 镜像、打开阅读页面、确认翻页方向并开启辅助功能权限。
  • 不打扰阅读:日常操作集中在屏幕顶部的小型 HUD 与菜单栏中,主窗口可以随时关闭。
  • 自然节奏:每次翻页从最短与最长等待时间之间随机选择,避免机械的固定间隔。
  • 本地与克制:不截屏、不进行 OCR、不上传数据、不集成分析 SDK。
  • 可验证:翻页次数、倒计时、运行状态和失败原因始终可见。

功能

自动翻页

iTurner 会在 iPhone 镜像窗口右侧按住约 0.9 秒,再连续向左拖动并释放。这套手势针对常见阅读页面进行了优化,比单击、瞬时滑动或只移动鼠标更稳定。

可调随机区间

可以分别设置最短与最长等待时间,范围为 2–120 秒。修改后会自动保存,并从下一轮倒计时开始生效。

首次使用引导

首次打开 App 时,iTurner 会依次完成:

  1. 介绍本地运行与隐私边界。
  2. 引导打开并连接「iPhone 镜像」。
  3. 引导在 iPhone 中打开好测或其他阅读应用,并进入正文页面。
  4. 说明页面需要支持从右侧向左滑动翻到下一页。
  5. 请求 macOS 辅助功能权限。
  6. 设置随机翻页区间并开始运行。

液态玻璃 HUD

HUD 默认显示在菜单栏与刘海下方,包含:

  • 距离下一次翻页的倒计时。
  • 已完成的翻页次数。
  • 当前运行、暂停或翻页中的状态。
  • 快速暂停与继续按钮。
  • 纵向折页数字动画与轻量动态模糊。

App 与菜单栏入口

  • 在控制中心开始或暂停自动翻页。
  • 根据阅读应用选择向左或向右翻页。
  • 在菜单栏快速打开控制中心。
  • 随时隐藏或重新显示桌面 HUD。
  • 可选登录时自动启动 iTurner。
  • 重新进入首次引导。
  • 从控制中心或菜单栏完整退出 iTurner。

系统要求

  • 支持 Apple「iPhone 镜像」的 Mac 与 iPhone。
  • macOS 15 或更高版本。
  • Swift 5.9 或更高版本,用于从源代码构建。
  • macOS 辅助功能权限,用于发送按住与拖动手势。

最快安装

克隆仓库并运行安装脚本:

git clone https://github.com/huyan1349/iturner.git
cd iturner
chmod +x Scripts/build_app.sh Scripts/install.sh
./Scripts/install.sh
open /Applications/iTurner.app

安装脚本会执行以下操作:

  1. 使用 Swift Release 配置构建可执行文件。
  2. 生成标准的 iTurner.app 应用包。
  3. 进行本地临时代码签名。
  4. 将应用安装到 /Applications/iTurner.app

首次启动可能会被 macOS 要求确认打开来源。公开正式版本会进一步接入 Developer ID 签名与公证流程。

正式签名与 Apple 公证

仓库提供完整的正式发行脚本,但不会保存任何证书或公证凭据。

先将公证凭据保存到钥匙串:

xcrun notarytool store-credentials "iTurner-公证" \
  --apple-id "你的 Apple ID" \
  --team-id "你的 Team ID" \
  --password "App 专用密码"

然后执行:

DEVELOPER_ID_APPLICATION="Developer ID Application: 你的名称 (TEAMID)" \
NOTARY_PROFILE="iTurner-公证" \
./Scripts/sign_and_notarize.sh

脚本会完成 Release 构建、Hardened Runtime 签名、公证提交、凭据装订、Gatekeeper 验证和最终 ZIP 打包。产物位于:

dist/iTurner-正式版.zip

从源代码运行

swift run iTurner

构建但不运行:

swift build

验证左右翻页手势路径:

swift run iTurnerVerifier

生成可分发的 App 包:

./Scripts/build_app.sh

构建产物位于:

dist/iTurner.app

首次使用

1. 连接 iPhone 镜像

在 Mac 上打开「iPhone 镜像」,按照 Apple 的提示完成 iPhone 连接。请保持镜像窗口处于可见状态,不要最小化。

2. 准备阅读页面

在镜像中的 iPhone 上打开好测或其他阅读应用,进入需要连续阅读的正文页面。手动尝试一次从页面右侧按住并向左拖动,确认该页面使用这一方向翻到下一页。

3. 开启辅助功能权限

在 iTurner 的引导页点击「请求权限」,或手动进入:

系统设置 → 隐私与安全性 → 辅助功能 → iTurner

权限只用于发送鼠标按下、拖动与释放事件。iTurner 不会读取键盘输入。

4. 设置节奏并开始

设置最短与最长等待时间,点击「完成并开始」。HUD 出现后,倒计时结束会执行一次翻页,再自动进入下一轮随机倒计时。

命令行兼容模式

仓库仍保留独立脚本,方便自动化、调试与无主界面环境使用:

chmod +x Scripts/flip_loop.sh
ITURNER_MIN_DELAY=7 ITURNER_MAX_DELAY=10 ./Scripts/flip_loop.sh

可用环境变量:

变量 默认值 说明
ITURNER_MIN_DELAY 7 最短等待秒数
ITURNER_MAX_DELAY 10 最长等待秒数
ITURNER_APP_SUPPORT ~/Library/Application Support/iTurner 运行数据目录
ITURNER_STATUS_FILE .../flip-status.json HUD 状态文件位置
ITURNER_COUNT_FILE .../flip-count 翻页计数文件位置

隐私与安全

iTurner 的核心逻辑不需要网络连接。

  • 不截取 iPhone 镜像画面。
  • 不读取页面文字或图片。
  • 不进行 OCR、内容识别或云端分析。
  • 不收集账号、设备或行为统计。
  • 不包含广告、遥测或第三方分析 SDK。
  • 只读取 iPhone 镜像窗口的位置和尺寸,并发送本地鼠标事件。

详细说明见 隐私说明

常见问题

HUD 出现了,但页面没有翻动

  1. 确认「iPhone 镜像」窗口没有最小化。
  2. 确认当前阅读页面支持从右向左翻页。
  3. 检查 iTurner 是否拥有辅助功能权限。
  4. 手动滑动一次,确认页面没有弹窗或遮罩拦截手势。

倒计时结束后显示翻页失败

通常是镜像窗口被关闭、最小化或系统权限被撤销。重新打开 iPhone 镜像,在控制中心点击「重新检测」,再开始运行。

为什么使用随机等待,而不是固定间隔

随机区间更适合阅读与展示场景,可以减少机械感。若希望接近固定间隔,把最短与最长时间设置为同一个值即可。

如何完全退出

点击控制中心中的「退出」,或在菜单栏 iTurner 图标中选择「退出 iTurner」。关闭主窗口不会终止菜单栏进程。

项目结构

iturner/
├── Package.swift
├── Resources/
│   └── Info.plist
├── Scripts/
│   ├── build_app.sh
│   ├── generate_icon.swift
│   ├── install.sh
│   ├── sign_and_notarize.sh
│   └── flip_loop.sh
├── Sources/iTurner/
│   ├── iTurnerApp.swift
│   ├── AppModel.swift
│   ├── OnboardingView.swift
│   ├── ControlPanelView.swift
│   ├── HUD.swift
│   └── GlassComponents.swift
├── Sources/iTurnerCore/
│   └── PageTurnGesture.swift
├── Sources/iTurnerVerifier/
│   └── main.swift
├── Documentation/
└── LICENSE

开发路线

  • Developer ID 签名、公证与正式发行包。
  • 手势校准与更多翻页方向。
  • 针对不同阅读应用保存独立配置。
  • 自动更新服务。
  • 无障碍描述与键盘操作完善。
  • UI 自动化测试与更多真实阅读应用的兼容性测试。

参与贡献

欢迎提交问题、改进建议和拉取请求。请先阅读 贡献指南安全策略

许可证

项目使用 MIT 许可证,详见 LICENSE

iTurner 是独立开源项目,与 Apple Inc. 没有关联,也未获得 Apple Inc. 的赞助或背书。「iPhone」与「iPhone 镜像」是 Apple Inc. 的商标或产品名称。

About

中文原生的 macOS iPhone 镜像自动翻页工具,支持液态玻璃 HUD、首次引导、随机间隔和本地隐私保护

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors