【发布时间】:2011-02-20 09:23:59
【问题描述】:
在我的 iphone 应用程序中,我想提供某种应用程序终止处理程序,它将在应用程序终止之前完成一些最终工作(删除一些敏感数据)。
我想处理尽可能多的终止情况:
1) 用户终止应用
2) 设备电量耗尽
3) 系统因某种原因终止应用程序(例如内存不足或应用程序冻结)
4) 应用程序崩溃(EXC_BAD_ACCESS 或 SIGSEGV)
还有其他特殊情况吗?
实现此目的的最佳方法是什么(例如,在情况 2 中是否调用了 applicationWillTerminate 方法)?
是否可以在信号处理程序中进行清理(包括 iPhone 安全框架调用)?
问候
【问题讨论】:
-
您的敏感数据已写入持久存储?有没有办法可以在内存中创建它?如果使用 SQLite,它支持内存数据库。
-
不,我的数据存储在钥匙串中 :) 但是我正在开发一个电子银行应用程序,我的客户希望我在将所有数据(包括密钥)存储到钥匙串之前手动加密它们。由于 SDK 不支持这一点,我必须对密钥和数据签名进行某种破解(请参阅我之前的帖子:stackoverflow.com/questions/2826090/…)。因此,我在应用程序生命周期内将密钥的解密版本保存到钥匙串中,以便能够进行签名,然后在应用程序终止时我想将其删除。
标签: iphone exc-bad-access signal-handling