应用掉签之后,最常见的求助不是”怎么重装”,而是”我里面的数据还能不能拿出来”。这个问题的答案,取决于掉签之前有没有做过准备。事先有备份方案的,几分钟就能恢复;什么都没做的,很可能真的拿不回来。
先搞清楚数据存在哪
iOS 应用的本地数据,一般存在应用的沙盒目录里。所谓沙盒,就是系统给每个应用划的一块独立存储区,别的应用读不到,用户也看不到。聊天记录、离线缓存、游戏存档、登录状态,基本都在这里面。
关键点在于:重签名之后,应用的身份标识(Bundle ID 对应的签名身份)会变,系统会把它当成一个全新的应用。新应用有新的沙盒目录,读不到旧数据。所以如果之前的数据没备份,重装之后通常就是空的。
方案一:应用内导出(最可靠)
如果应用自己提供导出功能,这是首选。常见的形式有:导出聊天记录为文件、把存档同步到云端账号、生成备份包通过分享面板发出来。
这个方案的好处是导出的数据格式规范,重新导入不会出错。缺点是依赖应用本身有没有做这个功能——很多应用没有,尤其是那些本来就没打算长期运营的。
建议在应用还能正常打开的时候就先试一次导出,别等到打不开了才想起来。导出频率按数据重要性定,重要的每周一次都不为过。
方案二:iCloud 备份(最省事)
如果应用的数据已经同步到 iCloud,那重装之后只要登录同一个 Apple ID(苹果账号),数据会自动回来。这条路最省事,但有两个前提:
- 应用确实开启了 iCloud 同步,而不是只存在本地;
- 重装的应用和原来用的是同一个 iCloud 容器标识。如果重签名时改了相关配置,同步会失效。
判断方法很简单:在 iPhone 的”设置 → 顶部头像 → iCloud”里看应用的云备份开关有没有打开,以及占用了多少空间。占用为 0 的基本就是没同步。
方案三:整机备份(最后的手段)
如果前面两条都没做,还有一条路:用电脑做整机备份。
把 iPhone 连到电脑,用访达(macOS)或 Apple Devices / iTunes(Windows)做一次完整的本地备份。这个备份会把应用沙盒里的数据一起打包下来。
拿到备份之后,可以用第三方工具把备份解包,找到对应应用的目录,把数据文件取出来。这一步需要一点技术操作,而且前提是——你必须在应用还能打开、或者至少数据还在的时候就把备份做了。应用一旦被卸载,沙盒数据就没了,备份里也不会有。
另外要注意:整机备份默认是全量覆盖的,做新备份会覆盖旧的。如果旧的备份里还有你想要的数据,先把它归档保存好再建新的。
亡羊补牢的顺序
如果应用现在还能打开,建议按这个顺序做一遍:
- 第一步:用应用自带的导出功能,把重要数据导出一份;
- 第二步:确认 iCloud 同步是否开启,没开的打开;
- 第三步:连电脑做一次整机本地备份,并归档保存;
- 第四步:把当前版本的 IPA(iOS 应用安装包文件)留存一份,后面重签名要用。
这四步做完大概半小时,但能省掉后面几天的麻烦。掉签这件事无法完全避免,能控制的是出事之后的损失有多大。
我是本期作者小思,想解决苹果企业签名、超级签名、TF签名问题?可以在微信公众号对话框找到我哦~(QQ:822404920 微信:A-mk5888)