2015-09-29 85 views
2

我正在使用Xcode 7.0(7A220),面向iOS 9.0和watchOS 2.0。与watchOS共享钥匙串2 - 所有关于项目设置?

我还没有得到钥匙串共享在我自己的watchOS 2应用程序中工作,但它在this example project中工作,这是我的问题的一部分。

有来自NatashaTheRobot相谈甚欢(here),她越过与watchOS钥匙扣共享。(Working code from github here),看到自己,她的iOS应用和观看的应用程序都能够通过钥匙串在模拟器上分享。

这里是我做她的项目,它仍然有效:

  • 移除了KeychainItemWrapper init方法访问组字符串。这是有道理的,因为模拟器不代码签署,access group gets deleted in KeychainItemWrapper initWithIdentifier:(签在initWithIdentifier :)评论
  • 删除从KeychainItemWrapper initWithIdentifier标识符串在这两个视图控制器从两个权利
  • 删除了钥匙串访问组关键指定钥匙串访问组密钥

您可以删除这三件事情,并且钥匙串共享仍可在此项目的模拟器中工作。为什么? 至少不应该有必要吗?

终于打破这个项目的事情正在改变开发团队/供应配置文件,这使我认为项目设置是这个问题的真正关键。

在我自己的项目中,我添加了一个watchOS 2扩展,向两个目标添加了钥匙串共享功能,即使使用我的捆绑包种子ID也添加了适当的访问组,我试图为iOS应用,watchkit应用创建单独的配置配置文件和watchkit扩展。我确信我忘记了我已经试过的东西,我一直试图解决这个问题大约一个星期,但无济于事。我错过了什么?

Apple's docs on creating capabilities are not super specific on project settings。它说要点击并打开项目中的功能。做到了。

Apple's other docs on generic keychain use didn't clear it up for me either。他们有一个共享钥匙链的2个目标项目,但据我所知,我的项目设置和他们的没有显着不同。

This answer goes over the useyourloaf article from 2010 on keychain sharing,但就像我之前提到的,似乎模拟器完全忽略了这些钥匙串访问组标识符。

我一直在想,必须有一些明显的东西,我错过了所有这些。任何指针将不胜感激。

回答