应用程序更新后,我放入钥匙串的值可以保存吗?

时间:2013-02-12 08:00:23

标签: iphone ios objective-c keychain

我在app-store中有一个应用程序。在我的应用程序中,我使用钥匙串将一些值(例如:name& surname)保存为加密值。如果我使用xCode更新我的应用程序,则值没有问题。它们都按照我的意愿保存在钥匙串中。但是,如果我将新版本放入应用程序商店并使用appstore中的版本更新我的应用程序,我的值全部消失:(如果应用程序更新,iOS会删除钥匙串中的值吗?

3 个答案:

答案 0 :(得分:4)

注意:在iPhone上,钥匙串权利取决于用于签署应用程序的provisioning profile。请确保在不同版本的应用程序中始终使用same provisioning profile

检查更多信息Keychain Services Programming Guide

答案 1 :(得分:1)

在更新过程中,不得以任何方式删除或更改应用程序的钥匙串。如果您遇到这种情况,您必须做错事(参见上面的Joachim的问题)。

(实际上删除应用程序并没有删除iOS 4.x中的钥匙串,这通常不会发生。但我没有检查这是否在以后的iOS版本中有所改进。)

此外,钥匙串不是应用程序文件系统的一部分,因此更新不会影响其内容。钥匙串属于中央安全数据库(实际上它是一个特殊的sqlite3数据库)。有关更多详细信息,请查看Apple iOS安全文档中的“Keychain Data Protection”一章:http://www.apple.com/ipad/business/docs/iOS_Security_Oct12.pdf

结论是:应用更新后,您应用的钥匙串将保持不变。

答案 2 :(得分:1)

简单的答案是否定的。当您的应用更新时,不会删除存储在KeyChain中的数据。您可以使用KeyChain的键值对从KeyChain获取数据。

希望,这个简单的答案可以帮助你。