很多人遇到签名 App(用苹果签名方式分发、不经过 App Store 安装的应用)突然打不开,第一反应是「又掉签了」。但有一类情况跟签名商半点关系没有:手机的时间不对。这个原因排查起来只要十秒钟,却经常被忽略,白跑一趟售后。
一句话结论
签名能不能用,本质是系统在比对「证书的有效期」和「设备当前时间」。设备时间和真实时间偏差过大,系统就会判定这张证书要么还没生效、要么已经过期,于是拒绝启动 App。把时间改回自动设置,通常立刻就恢复了。
时间是怎么参与校验的
签名依赖两样东西:证书和描述文件。描述文件(Provisioning Profile,苹果下发的应用配置凭证,里面写明允许谁安装、能用到哪天)里记录着明确的生效时间与失效时间,一般是一年。
iOS(苹果手机系统)并不会在你安装成功之后就「记住」这个 App 是可信的。每一次点击图标启动,系统都要重新做一次校验:拿当前设备时间去和描述文件里的时间区间比对,落在区间内才放行。这个设计是有道理的——如果只在安装时校验一次,那用户装完之后把时间改掉就能无限期用下去,证书的期限就形同虚设了。
于是产生两种失败:
- 时间被往后调(比如调到明年):证书还没到生效时间,或者已经过了失效时间,判定为过期。
- 时间被往前调(比如调到几年前):证书尚未生效,同样拒绝。
- 时区错乱:自动设置关闭、时区被手动锁定到别的地区,偏差从几小时到十几小时不等,正好卡在有效期边界上的包会先出问题。
哪些场景会真的触发
不是理论问题,这几种情况在线上都出现过:
- 为了抢先体验某个功能改过时间。改完忘了改回来,之后所有签名 App 一起打不开,系统自带应用一切正常——这个组合很典型。
- 出差或换 SIM 卡后时区没同步。设备以为自己在另一个时区,本地时间整体偏移。
- 手机彻底没电、放了一段时间再开机。主板上的时钟在长时间断电后可能回到出厂基准时间,重启后需要先联网从时间服务器(NTP,网络时间协议,设备自动校准时间的服务)取标准时间,校正完成前那几分钟里 App 会打不开。
- 企业网络把时间服务器挡了。公司内部 Wi-Fi(无线网络)出于安全策略封掉了 NTP 端口,设备长期拿不到标准时间,偏移会越积越大。这种情况往往是一整批设备同时中招。
和真正的掉签怎么区分
两类问题现象很像,但处理路径完全不同,判断错了会白白浪费时间:
- 真掉签:改时间没用,同一台设备上所有签名 App 打不开,并且在「设置 → 通用 → VPN 与设备管理」里能看到对应的描述文件状态异常或已经消失。
- 时间问题:同样是所有签名 App 一起挂,但只要打开「自动设置」等几秒,重新点开就恢复了。这是最快的验证方式。
- 判断动作:设置 → 通用 → 日期与时间 → 打开「自动设置」,确认时区也选的是「自动」,然后回到桌面重开 App。
如果改完时间还是打不开,那才需要走掉签的排查流程。
顺手该做的三件事
- 「自动设置」保持常开。不要为了任何理由手动改系统时间,代价往往是整批签名应用一起失效。
- 时区跟随网络,别手动锁定。跨时区出差时让系统自己校正。
- 企业设备要放行时间服务器。如果是公司统一配发的机器,让网络同事确认 NTP(网络时间协议)没有被防火墙拦掉,否则这个问题会周期性复发。
小结
签名 App 打不开的原因里,时间错误属于「看起来很吓人、处理起来最简单」的那一类。排查顺序上,建议把它放在最前面:先看时间对不对,再看网络通不通,最后才怀疑证书。三步走完,能省掉大半的无效沟通。真正需要签名商介入的情况,其实比你以为的少。
我是本期作者小思,想解决苹果企业签名、超级签名、TF签名问题?可以在微信公众号对话框找到我哦~(QQ:822404920 微信:A-mk5888)