我是做H5封装起家的。去年帮朋友把一个本地社区团购小程序打包成iOS App,他急着赶线下地推,根本等不了苹果商城上架那三周。我说:“用超级签名吧,快。”他点头时眼睛发亮,像看见救星。我没告诉他,这“快”字背后是七次重签、四台测试机轮着装、还有一次凌晨三点被客户电话吵醒说“阿姨扫不出来付款码”。

第一次用的是某宝上搜到的“极速签”,198元/年,包50台设备。结果第三天,客户群里炸出十几条截图:“安装失败”“信任描述文件没了”“点开就闪退”。我翻证书后台才发现,他们用的是个人开发者账号($99那种),证书类型选错了——不是“iOS Distribution (Ad Hoc)”,而是误配成“iOS Development”,压根不支持外发。设备数也偷偷缩水:标称50台,实测超28台就开始掉签。那天我蹲在出租屋阳台抽烟,风一吹,烟灰掉进泡面里,也没动筷子。

后来换了一家,自称“自建签名集群”,价格跳到426元/季度,含500台设备池+自动续签服务。他们给我一个Web控制台,能实时看每台设备的签名状态、UDID绑定时间、证书剩余有效期。我第一次发现:原来“掉签”不是随机的,它有节奏。比如每年1月15号前后,苹果会批量吊销一批异常活跃的个人账号证书;再比如,当同一Apple ID在24小时内为超过12台设备安装签名包,系统会悄悄标记该ID为“高风险”,后续安装直接拒绝——不是报错,是静默失败。我试过拿我妈的Apple ID绑了8台老人机跑健康监测App,第三天起,新设备就再也装不上去了。她问我:“是不是手机坏了?”我说:“妈,是苹果觉得您太活跃了。”

网站封装这块最折磨人。客户总说:“就一个H5页面,加个壳,能多难?”可现实是:Safari里好好的Vue路由,在WKWebView里会卡在白屏;微信JS-SDK调用扫一扫,封装后权限全失;甚至只是加了个“添加到主屏幕”的PWA manifest,签名后iOS 17.4直接拒载——因为苹果检测到manifest里写了“display: standalone”,而签名包又没走官方Web Clip流程。我们最后硬是把整个H5逻辑抽出来,用React Native重写了导航层,只留核心页面走WebView加载。签了三次才过:第一次掉签率63%,第二次因证书Bundle ID和网页域名不一致被拦截,第三次……终于稳定了。现在那个团购App在217台iPhone上跑了117天,零掉签。我把它截图设成了手机壁纸。

也有意外的好运。上个月给一家教培机构签APP,他们用的是企业证书(In-House),理论上无限设备。但第五天所有iPad都弹出“未受信任的企业开发者”,我查日志发现是他们的MDM服务器证书过期了——不是签名问题,是管理链断了。我顺手帮他们搭了个轻量级签名中转页,把H5封装后的URL生成带时效参数的签名短链,用户扫码即装,装完自动信任描述文件。这个小工具现在被三个同行要走了,没收费,就图个心安。

价格真的飘忽。上周谈一个长期合作,对方报价按设备数阶梯计费:前100台3.8元/台/月,101–500台降为2.6元,超500台封顶1.2元。我当场算了一笔账:比买10个个人号自己轮着签还便宜,而且不用半夜爬起来手动导出新证书。但第二天他们客服说“系统升级”,价格回调到4.1元起步。我没争,默默把订单拆成两个账户下单——这是干这行半年后学会的生存本能。

最讽刺的是,我去年花5999元买了个苹果开发者企业账号,本想彻底告别中间商。结果第一次上传In-House包,就被苹果邮件警告:“检测到分发行为疑似面向公众”,附上三台设备的IP归属地(深圳、杭州、成都)。我删掉下载链接,改用内网二维码,三天后又来一封:“您的证书存在跨地域高频调用特征”。最后我把企业证书锁进保险柜,转头又续了那家426元/季度的超级签名服务。技术上,它确实只是把IPA重打包、注入mobileprovision、用私钥重签名——但真正值钱的,是他们每天凌晨自动轮换的27个有效证书池,是那套能预判苹果策略更新的监控脚本,是客服看到我发“掉签”二字就秒回的工单编号。

上周五,客户发来一段视频:菜市场摊主用iPad点开我们的封装App,扫顾客付款码,收款提示音清脆响起。屏幕右上角,那个小小的“已信任”图标稳稳亮着。我没截图,也没转发朋友圈。只是关掉电脑时,顺手把窗台上那盆枯死的绿萝扔了,换了盆新的。

苹果签名这事,从来就不是技术问题。
是人在规则缝隙里,踮着脚走路。