我正在使用Xcode 7.0(7A220),目标是iOS 9.0和watchOS 2.0。
我还没有通过自己的watchOS 2应用程序获得钥匙串共享,但它可以在this example project中使用,这是我的问题的一部分。
NatashaTheRobot(here)有一个很好的谈话,她在那里与watchOS进行了钥匙串分享。(Working code from github here),亲眼看看她的iOS应用和手表应用能够通过钥匙串分享在模拟器中。
这是我对她的项目做了什么,它仍然有效:
您可以删除这三件事,并且钥匙串共享仍然可以在此项目的模拟器中使用。为什么? 至少的“不应该”的权利是否必要?
最终打破这个项目的是改变开发团队/配置文件,这让我觉得项目设置是这个问题的真正关键。
在我自己的项目中,我添加了一个watchOS 2扩展,为两个目标添加了钥匙串共享功能,添加了适当的访问组,即使我的捆绑种子ID,我尝试为iOS应用程序创建单独的配置文件,watchkit app,和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,但正如我之前提到的,似乎模拟器完全忽略了那些钥匙串访问组标识符。
我一直在想,在这一切中我必须有一些明显的错过。任何指针都将非常感激。
答案 0 :(得分:2)
由于watchOS 2.0无法在手表及其配对设备之间共享钥匙串项目。