GoForum🌐 V2EX

做了一个 iOS 相册清理工具,不只是找重复图——也聊聊两次被苹果审核拒绝的经历

wwwwwwwwwwww · 2026-03-19 16:37 · 0 次点赞 · 1 条回复

相册有 3 万多张照片,存储快满了。试了几款清理 App ,要么只能找重复图,要么扫出来一堆误判。干脆自己写一个。

结果写着写着功能越来越多,大概两个月后变成了现在这个样子:PhotoSweep

App Store 链接: https://apps.apple.com/app/id6759631286 免费下载,优惠码 PHOTOSWEEP2026 可以免费用一个月 Pro 。


主要功能

智能扫描( 8 个分类)

一键扫描整个相册,分类找出:

  • 精确重复 / 相似图片
  • 模糊、失焦的照片(用 Vision 框架的 Laplacian 方差做的)
  • 截图和屏幕录制
  • 体积过大的文件
  • 重复视频
  • 按地理位置聚合的图片

SwipeTriage (滑动分拣)

类似 Tinder 的卡片界面——向右滑保留,向左滑删除。当你有几百张”也许要删”的照片时,这个效率比一张张看高多了。

EXIF 元数据查看器

选一张照片,马上看到完整 EXIF:相机型号、曝光、光圈、ISO 、GPS 坐标(带地图预览)。支持一键分享文本。

照片健康报告

给你整个相册打一个”健康分”,列出具体的问题(比如”截图占了 3.2GB”),有行动建议。

批量水印

上传前加文字水印,支持字体大小、位置、透明度,一次处理多张。

其他工具:截图拼接、网格切割( Instagram 九宫格)、照片/视频压缩、HEIC↔JPEG 转换、iCloud 诊断、存储分析。

全部本地处理,没有服务器,没有账号,没有广告。


技术栈

  • Swift / SwiftUI ,iOS 17+
  • Vision 框架做模糊检测( Laplacian 方差)
  • CoreImage 做相似图哈希比对
  • SwiftData 持久化,带 DB 损坏自动恢复
  • BGProcessingTask 后台扫描 + 断点续传
  • 37 种语言本地化( 478 个 key )
  • 450 个测试( 422 单元 + 28 UI/E2E )

被苹果拒了两次,说一下经过

第一次:Guideline 2.5.1 ( HealthKit 权限残留)

早期有个功能想读 HealthKit 数据,后来放弃了。删掉了代码,也删掉了 .entitlements 文件里的条目,但忘了 Apple Developer Portal 的 App ID Capabilities 页面里还留着这个 capability 。苹果审核员发现了,拒了。

教训:entitlements 是三层的——代码层、.entitlements 文件、Portal App ID Capabilities ,三个地方必须同步。

第二次:Guideline 4.3(a)(与系统 App 功能重复)

审核员认为和系统自带的”照片”App 功能没有实质区别。我加了三个明显差异化的功能( EXIF 查看器、健康报告、批量水印),重写了 App Store 描述,重新做了 Onboarding 来在第一次启动时就展示差异化,才通过。


定价

  • 免费:无限扫描,每次最多清理 20 张
  • Pro 订阅:\(0.99/周 或 \)9.99/年,含 1 周免费试用
  • 优惠码 PHOTOSWEEP2026:免费用 1 个月(兑换方式:App Store → 头像 → 兑换礼品卡或代码)

PhotoSweep 主界面

有问题欢迎在这里问,或者 App Store 评论。做独立开发比较孤独,认真的 Feedback 对我来说很有价值。

1 条回复
loserwn · 2026-03-19 16:52
#1

我的照片和视频比楼主还多。有几个问题:

  • app 的逻辑是要把云端的照片的都加载下来,再进行对比吗?如果是,可能会出现我的本地空间不够加载全部照片的情况。
  • 如果照片规模达到 10w+ 是否有性能问题。(我之前使用一些云盘备份照片会有 highcpu 的问题。例如:tx 微云,每次备份照片手机都特别烫,耗电猛增。)
添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: wwwwwwwwwwww
发布: 2026-03-19
点赞: 0
回复: 0