那会儿刚给客户上线一个H5封装的健身打卡工具,用的是网站封装+IPA签名方案。客户要快,不要上架App Store(说审核周期太长,怕错过618活动),我就推了超级签名。签了32台设备,收了他4980块,含一年维护和无限次重签。结果第三天,6台掉,第五天又掉11台……最后剩17台能用,我连夜重导UDID、换证书、清Apple ID缓存,手抖着点下“重新签名”按钮时,心想:这哪是技术活,是驯兽。

先说价格吧。我做过三轮不同渠道的比价:最早找的深圳华强北熟人,按设备收费,28元/台/月,但必须预存5000元起,还锁死3个月;后来试过一个杭州团队,他们搞“动态证书池”,说是用多张企业证书轮转,报价3980/年不限设备数,听起来很美,结果签了200台,三天后全军覆没——原来他们用的是一家被苹果吊销的企业证书,连带我客户的几十个账号都被风控了;现在稳定用的是苏州一家小工作室,老板是个前苹果外包测试员,不接大单,只做定制,报价分档:基础版(单证书+手动绑定)2200/年/100台;高稳版(双证书热备+自动检测掉签+Apple ID隔离)4800/年/100台。我选了高稳版,贵是贵,但上周他们主动发来一条推送:“您名下第137台设备证书将于24小时后过期,已自动切换至B证,无感知。”那一刻我盯着手机,居然有点想哭。

说到原理——别信什么“黑科技”“免证书”。真东西就三根骨头:一是设备唯一标识(UDID或iOS 16后的Device ID),二是Apple ID与签名证书的绑定关系,三是分发方式。普通IOS签名走Ad Hoc,最多100台,还得每台手动信任描述文件;超级签名本质是绕过这个限制,用企业证书(In-House)或个人开发者账号(Apple Developer Program)打包成IPA,再通过短链分发。但关键在“信任链”:iOS每次打开APP,都会校验证书是否有效、是否被撤销、对应Apple ID是否触发过异常登录。去年秋天我就栽在这儿——客户让员工用公司邮箱批量注册Apple ID,结果同一IP段半小时内登了43个号,苹果直接冻结了其中21个,连带这些账号安装的所有APP全部闪退。后来我才懂,签名不是贴个标签就完事,它是活的,得养。

网站封装这块最坑人。客户总说:“你们不是能H5封装吗?把我们那个Vue写的预约系统包进去不就行了?”听起来简单。可实际呢?我用Cordova打包,加了WKWebView优化,也做了离线资源缓存,但签名之后一跑,iOS 17.4上部分机型加载JS失败——查日志发现是证书校验时阻塞了Webview初始化。折腾两天,最后靠在签名脚本里加了一行`--entitlements`参数,强制开启`get-task-allow`和`keychain-access-groups`才稳住。你说玄学不玄学?但这就是现实:网站封装不是套壳,是嫁接,而苹果签名就是那根缝合线,松一点,整个界面就裂开。

稳定性?我现在敢说:只要Apple ID干净、设备不越狱、不频繁换网络、不手动删描述文件,高稳版掉签率能压到0.8%以内。上个月我统计过:312台设备,平均存活21.7天,最长一台跑了143天——是位退休教师,每天只用它记药盒提醒,从不装别的APP,也不更新系统。反倒是那些爱折腾的年轻人,装个抖音、切个账号、连两次公共WiFi,第二天APP就灰了。所以现在我签之前必问一句:“你最近有没有换过Apple ID密码?或者用iCloud同步过通讯录?”——不是废话,是保命问题。

也有光亮时刻。前天客户发来截图:他爸在养老院用那个H5封装的血压记录APP,语音录入+自动同步家属微信,老人点了三次就学会。没有App Store图标,没有审核驳回,没有“此APP尚未经过苹果认证”的警告——只有绿色图标,安静,可用。那一刻我觉得,苹果签名不是妥协,是另一种抵达。它让一个没有iOS开发经验的小团队,把网页变成老人手指能摸到的真实工具;让一个不想等96小时审核的教育机构,在开学前夜把报名系统推到家长手机里。

当然,我也骂过。骂过某次签名后所有设备集体白屏,查出来是证书时间戳写错了8小时;骂过客户自己点了“删除描述文件”还怪我“技术不行”;骂过苹果今年3月突然收紧In-House证书校验逻辑,导致一批老证书凌晨失效,我爬起来重签签到天亮。

但今天早上,我收到一条新消息:“老师,我们社区小程序也想封装,这次能加人脸识别吗?”
我回了个“可以”,顺手把苏州工作室的续费链接发了过去。
没提价格,没讲原理,也没说掉签风险。
因为有些事,做多了,就不用解释了。
苹果签名,它不酷,不炫,甚至有点土;但它像胶水,把想法、网页、老人、孩子、来不及上架的需求,黏在一起,黏得不太牢,但够用。
这就够了。