Sloth发布前检查清单:从功能测试到签名验证
Sloth作为一款基于lsof命令的macOS图形化工具,能够帮助用户直观地查看系统中所有进程打开的文件、目录、Socket(套接字)和管道等资源。为确保每次发布的版本稳定可靠,需严格执行以下发布前检查流程。
功能完整性验证
核心功能测试
Sloth的核心价值在于对系统资源的全面监控,需验证以下功能是否正常工作:
- 资源类型覆盖:确认能正确显示文件、目录、IP Socket、Unix域Socket、管道和设备。相关实现可参考source/Item.h中对不同资源类型的定义。
- 过滤与排序:测试按名称、访问模式、卷、类型等条件的过滤功能,以及按进程名、文件数、PID等维度的排序功能。过滤逻辑在source/SlothController.m中实现。
- 详情面板:检查Info Panel能否展示文件/套接字/进程的详细信息,包括IP套接字的状态、协议和端口等。详情面板控制器代码位于source/InfoPanelController.h和source/InfoPanelController.m。
特权操作测试
由于部分系统资源需root权限才能访问,需验证:
- 认证流程:测试in-app authentication能否正常触发并获取root权限。
- 特权扫描:以root身份运行时,确认能扫描到更多系统资源,如内核进程打开的文件。
兼容性检查
系统版本测试
Sloth需兼容多个macOS版本,根据README.md,当前版本支持macOS 10.13及以上。需在以下版本中进行测试:
- 最低支持版本:macOS 10.13 (High Sierra)
- 最新版本:当前最新的macOS版本(如Sonoma)
- 主流版本:macOS 11 (Big Sur)、macOS 12 (Monterey)、macOS 13 (Ventura)
硬件架构测试
Sloth为Universal二进制,需在不同架构的Mac上测试:
- Intel架构:在基于Intel芯片的Mac上验证功能和性能。
- Apple Silicon架构:在M系列芯片的Mac上测试,确保没有架构相关的兼容性问题。
性能与稳定性测试
性能基准测试
- 启动时间:记录应用从启动到主窗口显示的时间,应控制在3秒以内。
- 扫描速度:测量首次扫描和后续刷新的时间,大量进程和文件时应保持响应迅速。扫描逻辑主要在source/LsofTask.h和source/LsofTask.m中。
- 内存占用:长时间运行后,检查内存使用是否稳定,有无内存泄漏。可使用Instruments工具进行监测。
稳定性测试
- 压力测试:在系统资源紧张(如大量进程打开大量文件)的情况下,验证应用是否会崩溃或无响应。
- 异常处理:测试文件被删除、网络连接中断等异常场景下的应用表现。相关异常处理代码可参考source/Util/Alerts.h。
安全检查
代码签名
Sloth需要进行Developer ID签名和公证,确保用户能安全下载和运行:
- 签名验证:使用
codesign命令验证应用签名是否有效:codesign -vvv /path/to/Sloth.app - 公证状态:检查应用是否通过Apple的公证,可使用
spctl命令:spctl -a -v /path/to/Sloth.app
权限控制
- 敏感操作:如终止进程、删除文件等危险操作,需确认有二次确认提示,相关代码在source/Util/Alerts.m中。
- 隐私保护:确保应用不会收集或发送用户的敏感信息,如进程列表、文件路径等。
分发准备
打包与压缩
- 应用打包:使用Xcode或Makefile中的
build_unsigned目标构建应用,确保打包过程无错误。 - 压缩归档:将应用压缩为zip格式,大小应控制在合理范围内(根据README.md,当前版本约1.3 MB)。
更新框架配置
Sloth使用Sparkle框架进行自动更新,需配置:
- 应用更新清单:更新sparkle/SlothAppcast.xml,添加新版本信息,包括版本号、更新说明、下载链接等。
- 框架版本:确认Sparkle.framework为最新稳定版,以确保更新功能正常。
文档与版本记录
文档更新
- README.md:更新README.md中的下载链接、版本信息和功能描述。
- 截图更新:如果UI有变化,更新README中的截图,确保与新版本一致。
版本记录
- CHANGELOG:在CHANGES.md中添加新版本的更新日志,格式参考历史版本,如:
### 日期 - Version X.Y * 新功能1 * 改进2 * Bug修复3
最终检查清单
在正式发布前,使用以下清单进行最终确认:
| 检查项 | 状态 | 相关文件/资源 |
|---|---|---|
| 核心功能正常 | □ | source/SlothController.m |
| 兼容所有支持的macOS版本 | □ | README.md |
| 应用签名有效 | □ | - |
| 公证通过 | □ | - |
| 性能指标达标 | □ | source/LsofTask.m |
| 更新框架配置正确 | □ | sparkle/SlothAppcast.xml |
| 文档和CHANGELOG更新 | □ | README.md、CHANGES.md |
完成以上所有检查后,Sloth即可发布。发布渠道包括官方网站下载和Homebrew Cask,确保所有渠道的安装包一致且最新。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



