所以我遇到了一个问题,我的框架需要访问KeyChain
。很好,但是在模拟器中运行时似乎失败了。挖掘它似乎是一个已知的问题xctest
在这里做错事了。公平地说,错误是会发生的。在 Apple 开发者论坛中,对此进行了讨论:
Right.
这是库测试(有时被 Xcode 称为逻辑测试)的一个众所周知的问题。这些测试由没有权利的工具 (xctest) 运行。从历史上看,这会给使用自定义权利(例如访问 CloudKit)的人们带来问题,但现在它也会影响使用钥匙串的人们。
AFAIK 没有直接的解决方法。但是,我相信您可以通过在应用程序中运行此测试代码来避免该问题(强调我的)(在文档中这称为应用程序测试)。
因为它们在您的应用程序内部运行,所以它们获得应用程序的权利。
如果您手边没有应用程序,您可以创建一个虚拟的来托管测试。(强调我的我该怎么做呢?)
请尝试一下,如果遇到任何障碍请告诉我们。
哦,不要让解决方法的可用性阻止您提交有关此问题的错误。 Xcode 应该能够运行具有权利的库测试,最近的钥匙串更改使这一点变得更加重要。
分享和享受
https://forums.developer.apple.com/message/179846 https://forums.developer.apple.com/message/179846(参见:2016年11月4日凌晨2:12爱斯基摩人的回复)
他在另一条回复中又接着说道:
-
您可以通过在应用程序中运行测试来避免此问题,如果您手边没有虚拟应用程序,则可以创建一个虚拟应用程序。(强调我的)
- 请随意提交有关此限制的您自己的错误。
所以他再次引用:
您可以通过在应用程序中运行测试来避免此问题,如果您手边没有虚拟应用程序,则可以创建一个虚拟应用程序。
我很高兴能做到这一点,但我似乎不知道如何做。
我有的零件:
Framework Project
|
|- Unit Test Target
|- Framework Target
Dummy App Project
|
|- ??? How do I make this run the Framework's Unit Test Target?
啊,这篇文章有帮助:
https://medium.com/@ryuichi/setup-host-app-for-keychain-tests-in-xcode-8-97222611917e#.z3zpqwnzt https://medium.com/@ryuichi/setup-host-app-for-keychain-tests-in-xcode-8-97222611917e#.z3zpqwnzt
我正在添加一个全新的应用程序项目,我只需要在框架项目中添加一个新的目标Single View Application
然后我可以选择Host Application
在测试目标中。
使用我之前的图表,最终的结果是:
Framework Project
|
|- Unit Test Target
|- Framework Target
|- Dummy App Target
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)