各位 [即将] 日进斗金的 iOS 开发者请关注,做了个免费小工具:App Store 一有人付钱,几秒内推到 iPhone / Mac

mahui 2026-09-03 13:09 1

先吐个槽。做 App 的应该都有体会,App Store 的到账数据慢得离谱:销售报表要隔天才出,App Store Connect 后台的数据也是滞后好几个小时的。发了新版本、投了篇推广,最想知道的就是「现在有没有人付钱」,结果只能一遍遍刷后台,刷出来的还是昨天的。


我自己被这个折腾烦了,就做了个小工具叫 Catch:App Store 一有人付钱,几秒内推到你的 iPhone 和 Mac 。新购买、订阅、续订、退款,哪一笔、哪个国家、多少钱,通知里直接写清楚。



原理很简单


Apple 有个 App Store Server Notifications V2:在 App Store Connect 里填一个 URL,每笔交易发生时 Apple 就往这个地址 POST 一条签过名的通知。Catch 做的事就是接住这条通知,验完签,推到你手机上。



几个我自己作为用户会在意的点:



  • 不要 API 密钥,不碰你的账号。 接入只是在 ASC 里贴一个 URL,Catch 拿不到你账号的任何权限,能看到的就只有 Apple 主动推过来的那条交易通知。

  • 每条通知都验签。 通知是 JWS,x5c 证书链一路验到 Apple Root CA G3,根证书指纹写死在代码里,中间证书还查 basicConstraints 和 Apple 专用的 OID 。验不过的直接进死信,不会推给你。

  • 服务端跑在 Cloudflare Workers 上,数据库用 D1,推送直连 APNs,整条链路没有第三方 SDK 。

  • 一个地址多个 App 。 通知里自带 bundle id,Catch 按 bundle id 自动认 App,第一次出现会让你确认一下是不是你的,名字和图标从 App Store 拉。


通知长这样



类型、App 、商品、国家、金额、时间。沙盒(TestFlight / 沙盒测试账号)的会打个「沙盒」标,可以单独关掉。每种通知类型也都能单独开关,比如只看「新购买」和「退款」,不看「续订」。


Mac 也有



一套 SwiftUI 代码,iPhone 、iPad 、Mac 都有,同一个账号登录,推送都到。


其他几个功能



  • 免打扰。 设个时段,期间到账静默进通知列表,不响不亮屏,早上起来一起看。

  • 团队。 一个工作区一个地址,拉同事进来大家都收,免打扰和静音各设各的。

  • 转发。 每个 App 可以填一个你自己服务器的 URL,验签通过的通知原样转给你,省得自己再写一遍验签。


限制,先说清楚



  • 只有内购和订阅(自动续期、非续期、消耗品、买断)会触发通知。付费下载的 App 没有服务器通知,这是 Apple 的机制,收不到。

  • 每个工作区每天最多 1000 条,超了当天丢弃并提醒你一次;事件默认保留 90 天,最长 365 天。正常独立开发者远用不到上限,主要是防刷。


关于免费


现在完全免费。服务端跑在 Cloudflare 的免费额度里,我核算过,把用量控制在免费额度的一半以内,上千个活跃用户都不用花钱。


但我不敢承诺永久免费。以后要是人多了免费额度扛不住,或者要上更贵的东西,真要收费我一定先在这里跟大家商量,提前说,不会突然变卦。


链接



  • 官网 / 隐私政策:https://catch.app.mahui.me

  • App Store:审核中,过了补链接

  • 有问题直接回帖,或者去官网支持页找我

最新回复 (3)
  • Exia 09-03 15:20
    1
    还挺有意思的,我在想具体用途可以有什么
  • mahui 楼主 09-03 15:22
    2
    @Exia 可以及时看到到账
  • Jolin1677 09-03 22:35
    3
    mark 一下, 听着还挺有趣.
* 帖子来源V2EX
返回