那会儿我正给客户补签第三批IPA,一共42台设备,其中19台是老款iPad mini 4,系统卡在iOS 15.8。它们像一群守信用的老邻居,前两周稳得让人想写感谢信;可就在周三下午三点十七分,集体静默。App图标灰了,点开就闪退,连启动动画都没走完。我盯着屏幕,手没抖,心先凉半截:又来了。
这已经是我用超级签名跑私有分发的第11个月。不是苹果开发者账号那种正经上架路子——我们压根没走Apple Store审核。客户做的是本地政务小程序,H5封装后转成IPA,要求必须离线可用、不依赖服务器、能调摄像头和蓝牙。他们试过微信内嵌,结果扫码识别率掉到37%;也试过PWA,但iOS对后台蓝牙权限根本睁只眼闭只眼。最后咬牙选了IPA签名,理由很土:「老百姓不会换浏览器,但会点图标」。
价格?真没法一口价说清。上个月找的渠道A,按设备数算,380台收了我¥6,240,折合¥16.4/台,包三个月;结果第二周起,每天掉3-5台,客服回我说「证书老化属正常波动」。我当场截图发群里,配文:“老化?我奶奶的血糖都比这证书稳。”
后来换了渠道B,改用动态设备池+双证书轮换,¥9,800包500台半年,还送一个备用Apple ID池(23个账号,全实名绑定大陆身份证,带双因子)。贵是贵,但掉签率压到了0.8%——上周统计,500台里只有4台在重启后失效,重装一次就活了。最绝的是他们把UDID采集做了埋点优化:用户扫二维码进页面,自动抓设备指纹+弹窗引导信任描述文件,连iOS 16.6的弹窗层级冲突都预判好了。
说到原理,其实没玄学。苹果签名本质是让每台设备“认亲”:你用哪个Apple ID安装,系统就记下这个ID和证书的绑定关系;证书背后连着开发者的p12密钥和.mobileprovision配置文件,里面写着允许安装的设备列表(UDID)、Bundle ID、有效期。超级签名厉害在绕过了“单个证书最多100台”的限制——它不是硬塞满100台,而是用几十个开发者账号轮着签,每个号只挂20-30台,再通过域名调度把下载链接智能分发。就像快递柜分区投递,坏了一个格子,不影响其他楼栋。
但Apple ID真会反杀。上个月有台iPhone 12突然连续三次安装失败,日志显示“此Apple ID已在过多设备上启用双重认证”。查了才知道,那个ID被渠道方复用在另外17个客户项目里,且其中有3个ID绑了海外手机号——iOS一检测到异常登录频次,直接冻结证书信任链。我们连夜换ID、重打包、重发下载页,客户现场培训的老师已经站在讲台上了,PPT翻到“扫码即用”那页……我一边远程重签,一边把热咖啡泼在裤子上。
稳定性?得拆开说。短期(7天内):只要不重启、不升级系统、不手动删描述文件,99.2%的设备纹丝不动。我拿三台iPhone 13做了对照实验:一台放抽屉里静置,一台每天开12次App,一台当演示机连充电器常亮——21天后,三台全在线。
长期(30天+):掉签主力是iOS系统更新。iOS 17.4一推,我手里21台设备里有14台当天掉,原因很具体——新系统强制校验证书的Team ID签名链完整性,而某些渠道用的旧版Xcode导出流程漏了entitlements字段。补救办法粗暴:重签名,换证书,重上传。那天我重跑了17遍fastlane脚本,终端窗口堆成山,Mac风扇声像工地打桩。
也有暖的时刻。上周五,客户在社区老年大学教阿姨们用健康打卡APP。有个72岁的陈老师,第一次自己扫码、点信任、点安装,全程没喊人帮忙。她举着iPad给我看界面,屏幕右上角信号格满格,App图标亮得晃眼。那一刻我觉得,那些掉签的凌晨、被风控封掉的ID、反复修改的plist文件……都值了。技术哪有什么高光时刻?光是让一个不碰手机的人,点三次屏幕就完成一件事,就已经赢了。
现在我电脑桌面还开着三个终端:左边跑着自动巡检脚本(每两小时扫一遍所有设备是否可ping通),中间是证书到期提醒日历(标红的有6个,最近一个在5月23日),右边钉钉窗口里,渠道方刚发来新报价:¥12,500/800台/12个月,附赠UDID自动清洗服务——能把重复、虚拟、越狱设备筛掉。我还没回,先去泡了杯茶。茶凉之前,得决定要不要把那批还在用iOS 14.5的12台老设备迁到新证书池里。
苹果签名不是银弹,但它确实让很多“不可能”缩成了一个二维码。
只要别在更新系统那天,刚好遇上证书过期,还偏偏忘了提前备份描述文件——这种事,我干过两次。
一次在雨天,一次在客户签约前两小时。
(完)
字数:1586