爱意满满的作品展示区。
mahui

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

  •  
  •   mahui · 56 mins ago · 97 views

    先吐个槽。做 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:审核中,过了补链接
    • 有问题直接回帖,或者去官网支持页找我
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5539 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:05 · PVG 14:05 · LAX 23:05 · JFK 02:05
    ♥ Do have faith in what you're doing.