我想在 App 首次启动时做一些操作。我已经按照此处的建议编写了代码:how to detect first time app launch,iphone .它运行良好。
我可以使用 iExplorer 删除和修改 UserDefault plist 中的内容。所以我的应用程序没有按预期运行。有什么方法可以限制外部应用(iExplorer)修改应用文件?
Best Answer-推荐答案 strong>
如果您使用 iExplorer 更改系统文件,您可能会使任何应用程序无法正常运行。使其在某种程度上防篡改(虽然效率不高)的一种方法是在服务器上而不是在本地文件上管理信息。例如,您的应用可能会调用 Web 服务来检索和存储设置。这并不是说他们无法篡改您的应用程序包,使其无用。
简而言之,你不能让你的应用完全防篡改
编辑
正如 Zaph 所建议的,您可以使用钥匙串(keychain)。只需将 [[NSBundle mainBundle] bundlePath] 作为 key 存储在钥匙串(keychain)中。 bundlePath 对于每个安装都是唯一的。因此,当您的应用程序加载时,请检查钥匙串(keychain)中的 bundlePath ,如果不存在,则它是全新安装/首次加载。应用加载后,将 bundlePath 保存到钥匙串(keychain)。
关于ios - 如何防止我的设置(文件、NSUserdefaults)被 iExplorer 等外部应用程序修改,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/14750911/
|