我是做H5封装的外包人员,接单做小程序转iOS应用、企业内部工具、小商家营销页打包成APP。客户要快,要便宜,要“能装就行”。没人问证书链怎么走、UDID怎么校验、为什么同一个IPA在A设备能跑,在B设备点开就报错。直到上周三,给一家宠物医院做的预约系统,签了42台iPhone,结果周三下午掉签19台,周四早上又掉8台,剩下那台还在撑的,是机主老婆的旧iPhone 11,她没更新系统,也没点过任何推送——它活下来了,像某种玄学幸存者。
价格?真没法说死。最早我用朋友借的个人开发者账号,99刀/年,自己建Ad Hoc证书,手动导出IPA,一台台拖进爱思助手装,成本几乎为零,但只能装100台,且每7天重签一次。后来换了个渠道商,报价分三档:基础版($1.8/台/月),用的是共享企业证书,掉签率高得离谱,去年12月那批,签了63台,第三天就剩21台活着;中配版($3.2/台/月),他们说是“独立二级证书+动态设备池”,实际就是把客户设备号塞进一个大号的In-House证书里,稳定性好很多,但Apple ID一旦登出iCloud或重装系统,立马失效;最贵那次是$5.6/台/月,对方说用了“双层签名策略”——先用企业证书签一层壳,再用临时开发证书嵌套H5容器,掉签周期拉到12-18天,我信了,结果签完第二天,客户财务总监的iPhone 14 Pro Max就崩了,原因是她刚换了Apple ID密码,触发了Apple的证书绑定校验机制。那一刻我盯着屏幕,手指悬在键盘上,没敢回客户消息。
iOS签名的技术原理,我是在掉签第23次后才真正看懂的。它根本不是“给APP盖个章”那么简单。苹果签名本质是一场信任链接力:你的IPA必须由有效证书签名 → 该证书必须由苹果认可的根证书(如Apple Root CA)签发 → 设备运行时会反向校验整条链,同时比对当前Apple ID是否与签名时绑定的账户一致(尤其是企业证书)。超级签名之所以“超级”,是因为它绕开了UDID白名单限制,用的是Web技术+证书代理:用户扫码进一个中转页,页面背后调用签名服务生成临时安装链接,设备访问时,服务器实时用合法证书签一个仅限该设备、该次请求的IPA片段——所以它不依赖本地证书存储,也不怕UDID变更。但代价是,只要中转域名被苹果拦截、或证书被吊销,所有链接瞬间变404。我们试过三个域名,两个月内两个被封,第三个现在还活着,靠的是每天凌晨自动切CDN节点+UA伪装成微信内置浏览器。
稳定性?别谈“永久”。我手头有张Excel表,记录着过去8个月的掉签时间线:最长一次撑了29天(用的是某家自建Mac集群+轮换证书池),最短一次是2小时——客户自己点了“设置→通用→传输或还原iPhone→抹掉所有内容和设置”,重装完连App Store都打不开,更别说那个灰色图标。还有一次,掉签不是因为证书,而是因为客户让保洁阿姨帮忙清理iPad,阿姨顺手关了“设置→通用→设备管理→信任此开发者”,然后全办公室12台设备集体失联。那天我蹲在茶水间啃冷包子,一边重签一边想:我们到底是在写代码,还是在驯服一套随时翻脸的宗教仪式?
不过也有光亮时刻。上个月给一个非遗手作品牌做的APP,用的是新换的签名服务商,$4.1/台/月,签了87台,跑了整整34天零掉签。我截图发到朋友圈,底下有人问“是不是改用苹果商城上架了?”我苦笑。Apple Store上架?光审核排队就得两周,改三次icon、补五份隐私说明、被拒四次理由全是“无法提供真实测试账号”,最后客户说:“算了,签名够用,我妈扫二维码就能下单,比等上架快。”——这话扎心,但也真实。我们这些做IPA签名、网站封装、H5封装的人,早就不跟“正规军”比阵地了。我们在战壕里修桥,在断网边缘搭梯子,在苹果规则的裂缝里种菜。种出来的不是苹果,是能结出订单的果子。
对了,昨天那个灰掉的第37个包,我重新上传,换了签名策略,加了证书心跳检测,价格调到$3.9/台/月。客户说今天下午要带去展会现场演示。我摸了摸口袋里的AirPods,左耳那只电量只剩17%,右耳满格——就像签名这件事:永远有一边在耗尽,另一边还在硬撑。