Reading from Keychain Xcode 9 simulators returns nothing

試著忘記壹切 提交于 2019-12-05 09:18:15
Elyas Naranjee Sani

Finally we found the problem. As @Gix said the problem is with unit tests inside our framework. The SDK tests don’t have an app context, so don’t have the/a keychain available. But actually we didn't want to move the tests from SDK into app as you did @Gix. So we could fix the problem just by adding an app target in the SDK project, then set that as host for the SDK unit tests. Now unit tests are passing. But I still don't understand why its only failing in the new Xcode. We realize it's not an iOS 11 Simulator issue because the same failure happens with iOS 10 simulators in Xcode 9 too. So this restriction is a property of Xcode 9 Simulator app which can be fixed with the solution I provided. It is still messy but it works and you don't need to move tests from SDK into app!

Just figured this one out on my side, so I thought I'd let you know in case you are having the same issue.

My problem was the way I have my project set up. In my project I have a workspace with 3 projects, 1 is the Main App, 1 is a framework/library and 1 is the Pods project. I was accessing the keychain in my framework, and my unit tests target was part of this project.

After extensive discussion and work with Dan Federman from the team behind the library Valet (which you can find here), we figured out that my unit tests target needs to be part of the project where the Main App is. Once I copied all of my tests from the library project to the Main App project, everything ran and worked just fine.

Hope this helps!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!