如何在通过AppStore更新后测试对keychain属性的访问?

时间:2011-04-18 23:13:09

标签: iphone ios app-store keychain ios-provisioning

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

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

我没有遇到任何问题,但我想测试一下,如果我在AppStore中为我的应用程序提供更新,它仍然可以访问存储在钥匙串中的旧值。我尝试通过使用以特殊分发配置文件签名的版本更新应用程序进行测试,该版本包含与原始版本相同的软件包ID和产品名称,但无法访问密钥链中的旧值。

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

4 个答案:

答案 0 :(得分:3)

这是一个很好的问题。

您可能希望在钥匙串中存储某些数据的主要原因之一是防止恶意用户访问它。这是一个非常干的句子,所以我建议阅读about how someone might access that data

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


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

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

    当然,这需要您拥有应用商店中当前应用的存档即席版本。如果您没有这个,那么就无法测试更新。

答案 1 :(得分:0)

实际上,配置文件并不重要,而是应用程序ID。特别是您在创建App ID时设置的Bundle Seed ID。钥匙串访问受其控制。因此,只要您的个人资料使用具有相同捆绑种子ID的应用ID,您就可以继续访问钥匙串中的信息。我有一些应用程序可以执行此操作。

这使您可以创建一套应用程序,只要您将它们设置为使用相同的Bundle Seed ID,就可以访问相同的Keychain项目。因此,如果您使用简易版和专业版,他们都可以访问相同的钥匙串信息,同时为用户默认设置维护单独的捆绑标识。

答案 2 :(得分:-1)

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

答案 3 :(得分:-2)

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