Lives 是一个 macOS 本地工具:从多个 MOV/MP4/M4V 素材中截取不同的 3 秒瞬间,拼贴为一张 Live Photo,并保存到 Apple“照片”或指定文件夹。
当前正式版为 0.1.14。本版修复 4K H.264 视频导入后预览黑屏的问题:导入时由 macOS 原生媒体框架生成 WebView 可播放的预览代理,同时保留用户原始视频路径用于后续处理。保留自有源优先、GitHub 备用的双源更新及原有媒体功能。完整的产品范围、实现状态、验收门槛和技术约束请从 docs/项目文档 开始阅读:
- 从 v0.1.14 发布页下载 Apple Silicon DMG,核对同页的 SHA-256。
- 退出旧版,将 Lives 拖入“应用程序”文件夹。
- 从“应用程序”打开 Lives,不要直接在 DMG 安装窗口运行;保存到“照片”时按提示允许“仅添加照片”。
可从发布页下载安装,或通过应用内自动更新升级。详见 本版更新说明与验证记录。
需要 Xcode、Node.js 和 Rust。首次安装依赖后:
npm install
npm run tauri:dev网页预览:
npm run dev测试与构建:
npm test
swift test --package-path packages/LivesCore
swift test --package-path native/LivePhotoService
bash scripts/test-photo-signing.sh
npm run tauri:build代码级自动测试不能替代平台链路验证。当前的历史验收记录在 docs/真机验收记录.md,新的发布检查以 开发计划与验收清单 为准。
发布版本已配置 Developer ID Application: Yonghao Yang (LGKLTGNTY2) 签名,并通过 Apple 官方公证(Notarized & Stapled)。安装包与校验和发布于 GitHub Releases。官网:lives.1leaf.cc · GitHub Pages 镜像。
应用内置自动更新:冷启动优先检查自有更新源(GitHub 备用)→ 后台下载并校验大小、SHA-256 与应用签名身份 → 标题栏胶囊展示进度 → 一键「重启」原子换包并进入新版本。要点:
- 换包采用同卷 rename 原子替换(失败自动回滚旧版本),跨卷降级
ditto,主目录不可写时兜底安装到~/Applications; - 重启后校验新进程真实运行,失败逐级降级(
open重试 → 直接拉起主程序); - 检查/下载/退出均有看门狗超时,任何状态必然收尾,不会永久转圈;
- 更新重启后的首次启动自动展开右上角反馈面板,4 秒后淡出;手动点击可持续显示,普通启动不打扰;
- 更新中断自动恢复:已下载未安装的更新在下次冷启动直接提示完成安装;
- 替换过程全程记录于
~/Library/Caches/com.yangbukun.lives/Updates/relaunch.log,排查「重启卡住」类问题以该日志为准。
本仓库同时承载 Mac 应用源码与官网源码。引擎位于产品内 packages/LivesCore,是本仓库的内部模块,不独立发版;不再与其他产品共享同一份包。
src/、src-tauri/、native/LivePhotoService/:界面、Rust 宿主与 Swift Helper。packages/LivesCore/:模型、媒体处理与渲染;website/:官网源码。release/:历次版本的更新说明、验证记录与校验和。docs/:开发、发布与许可参考;.agents/rules/:发布与 Actions 规则。
开发使用 npm run tauri:dev,始终接入本仓库内的 Core;正式构建检查本仓库的提交。参阅 发布与官网维护、许可边界和第三方声明。
Lives 项目自有源码采用 GNU General Public License v3.0(GPL-3.0-only)。历史公开版本的既有授权不撤回;第三方组件继续适用各自许可。详见 许可边界 与 第三方声明。