Xcode 如何从测试中访问日历/摄像机/等?

Xcode 如何从测试中访问日历/摄像机/等?,xcode,unit-testing,xctest,Xcode,Unit Testing,Xctest,我正在尝试为直接针对EventKit工作的代码编写单元测试。这需要一个info.plist条目来描述需要访问日历的原因,就像您需要访问摄像头、GPS等一样 我已将适当的条目添加到test target info.plist,但出现运行时错误: 2016-10-13 20:07:18.477916 myapp[18252:6774056] [access] This app has crashed because it attempted to access privacy-sensitive d

我正在尝试为直接针对EventKit工作的代码编写单元测试。这需要一个info.plist条目来描述需要访问日历的原因,就像您需要访问摄像头、GPS等一样

我已将适当的条目添加到test target info.plist,但出现运行时错误:

2016-10-13 20:07:18.477916 myapp[18252:6774056] [access] This app has crashed because it attempted to access privacy-sensitive data without a usage description.  The app's Info.plist must contain an NSCalendarsUsageDescription key with a string value explaining to the user how the app uses this data

如前所述,单元测试似乎是在一个线束中运行的。然而,测试项目确实会得到一个info.plist文件,但它不是“main”info.plist。有没有办法克服这个问题?如何对与EventKit对话或定位的代码进行单元测试?

您是否也将该键添加到了测试目标的Info.plist中?你没有明确提到这一点,所以看起来你只是把它添加到了主要目标中。是的,很抱歉模棱两可,我对这篇文章进行了编辑以使其更清楚。在我看来,这似乎是一个主要的bug。很好,苹果现在在这次崩溃中强制执行了关于Info.plist的规则,但他们不应该在test harness应用程序中这样做。如果我是你,我会报告的。我提交了一个bug。希望他们很快就能做到。在本主题中,是否有人明确知道测试工具如何处理需要用户权限的API,如照相机、位置服务、eventkit?(或者至少它们过去是如何工作的?)我想知道如何针对这些API正确地测试代码。