如何获取iOS Framework测试目标并在虚拟应用程序中运行它?

Ada*_*lla 10 xcode ios

所以我遇到了我的框架需要访问的问题KeyChain.这没关系,但在模拟器中运行时似乎失败了.挖掘它似乎是一个已知的问题,xctest在这里做错了.很公平,错误发生了.在Apple Developer论坛中,我们将在此讨论:

对.

这是库测试的一个众所周知的问题(有时称为Xcode的逻辑测试).这些测试由没有权利的工具(xctest)运行.从历史上看,这会给使用自定义权利的人(例如访问CloudKit)带来问题,但现在它也会影响使用钥匙串的人.

AFAIK没有直接的解决方法. 但是,我相信您可以通过在您的应用程序中运行此测试代码来避免此问题(强调我的)(在文档中称为app测试).

因为这些会在您的应用内部运行,所以他们会获得应用的权利.如果您没有方便的应用程序,您可以创建一个虚拟的应用程序来托管测试.(强调我的 怎么做?)

如果您遇到任何障碍,请试试这个并告诉我们.哦,不要让变通方法的可用性阻止你提交有关此问题的错误.Xcode应该能够使用权利运行库测试,而最近的钥匙串更改使这一点变得更加重要.分享和享受

https://forums.developer.apple.com/message/179846(参见:Eskimo的回复于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?
Run Code Online (Sandbox Code Playgroud)

Ada*_*lla 15

啊,这篇文章有帮助:

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
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述