8

在钥匙串服务编程指南中,它说明了以下内容:

“在 iPhone 上,钥匙串权限取决于用于签署应用程序的配置文件。确保在不同版本的应用程序中始终使用相同的配置文件。”

我对此没有任何问题,但我想测试一下,如果我在 AppStore 中为我的应用程序提供更新,它仍然能够访问存储在钥匙串中的旧值。我试图通过使用使用临时分发配置文件签名的版本更新应用程序来进行测试,该版本包含与原始分发配置文件相同的捆绑 ID 和产品名称,但它无法访问钥匙串中的旧值。

将更新提交到 AppStore 并希望它能够正常工作是唯一的选择吗?

4

4 回答 4

4

这是一个很好的问题。

您可能希望在钥匙串中存储一些数据的主要原因之一是防止恶意用户访问它。这本身就是一个相当枯燥的句子,所以我建议阅读有关某人如何访问该数据的内容。

另一种访问钥匙串数据的方法是创建一个与目标应用具有相同应用 ID 的恶意应用。Apple 通过要求配置文件相同来确保这条路线。


因此,要回答您的问题,您只能从同一配置文件中测试更新中的钥匙串数据,即

  1. 临时到临时
  2. 应用商店到应用商店。

应用商店到应用商店并不是一个真正的选择,因为到那时为时已晚(您的更新将投放市场)。因此,您需要删除您的应用商店应用并安装临时版本。然后在钥匙串上重新创建您的数据,然后更新到最新的临时版本并测试它是否有效。

当然,这需要您拥有当前在应用商店中的应用的存档临时版本。如果您没有此功能,则无法测试更新。

于 2013-07-22T09:56:25.647 回答
-1

实际上,重要的不是配置文件,而是应用程序 ID。特别是您在创建 App ID 时设置的 Bundle Seed ID。钥匙串访问由它管理。因此,只要您的个人资料使用具有相同捆绑种子 ID 的应用 ID,您就可以继续访问钥匙串中的信息。我有几个应用程序可以做到这一点。

这允许您创建一套应用程序,只要您将它们设置为使用相同的捆绑种子 ID,它们都可以访问相同的钥匙串项目。因此,如果您使用轻量版和专业版,它们都可以访问相同的钥匙串信息,同时为用户默认值等内容维护单独的捆绑标识。

于 2011-04-19T01:37:25.337 回答
-1

除非我弄错了,否则要更新应用商店中的应用,您需要使用相同的配置文件。因此,由于您将使用相同的配置文件,因此您应该可以访问相同的钥匙串项目。

于 2011-04-19T01:21:49.477 回答
-3

SFHFKeychainUtils 可能是你不错的选择。它是访问钥匙串的包装器。更多关于:SFHFKeychainUtils: http: //www.ioslib.com/archives/sfhfkeychainutils/

于 2011-04-22T04:01:29.973 回答