- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在运行带有 UIImageWriteToSavedPhotosAlbum()
的 UITests 案例,以将我的测试屏幕截图保存到相册:
- (void)testExample
{
XCUIScreenshot *screenshot = [_app screenshot];
UIImageWriteToSavedPhotosAlbum(screenshot.image, nil, nil, nil);
}
但它因错误而崩溃:
... XXXUITests-Runner[53905:8592232] [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 NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.
我已经为我的 UITest 目标和应用程序目标提供了 NSPhotoLibraryUsageDescription 和 NSPhotoLibraryAddUsageDescription。
搜索了一段时间,到目前为止,我无法找到让 UITests-Runner 能够将图像保存到照片应用程序的方法,没有 UI 级别让我按下以允许它。
那么,我该如何实现这一点,即让 UITests-Runner 能够访问隐私敏感数据(在本例中为照片)?
下面是相关的错误详情:
Test Suite 'All tests' started at 2018-05-10 11:30:37.693
Test Suite 'UITestRunnerIssueDemoUITests.xctest' started at 2018-05-10 11:30:37.694
Test Suite 'UITestRunnerIssueDemoUITests' started at 2018-05-10 11:30:37.694
Test Case '-[UITestRunnerIssueDemoUITests testExample]' started.
t = 0.00s Start Test at 2018-05-10 11:30:37.695
t = 0.05s Set Up
t = 0.06s Open com.kjuly.UITestRunnerIssueDemo
t = 0.10s Launch com.kjuly.UITestRunnerIssueDemo
t = 3.08s Wait for com.kjuly.UITestRunnerIssueDemo to idle
t = 6.10s Find the Target Application 0x60c0000dd5e0
t = 6.25s Tear Down
2018-05-10 11:30:43.948541+0800 UITestRunnerIssueDemoUITests-Runner[53905:8592232] [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 NSPhotoLibraryAddUsageDescription key with a string value explaining to the user how the app uses this data.
顺便说一句,我知道我可以获得自动保存在 AppData/Library/Snapshots 文件夹下的 UITests 屏幕截图,但如果我可以从相册中获取它会很方便,尤其是在真实设备中这样做时,我不愿意每次都为了获取这些屏幕截图而下载 App Container(而且,我需要保存的高质量屏幕截图)。
最佳答案
我现在有完全相同的问题,对我有用的临时解决方法是放置图像保存代码:
UIImageWriteToSavedPhotosAlbum(screenshot.image, nil, nil, nil);
在应用程序代码中,就像您在 Debug模式下运行它时一样。
关于ios - 如何使 UITests-Runner 能够访问隐私敏感数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50265129/
XCUIApplication *app = [[XCUIApplication alloc] init]; [app.buttons[@"login"] tap]; 如上所示,在tests.m 文件
我正在尝试为我的项目设置一些 UITest,并且在运行它们时收到错误: System.Exception : Android SDK not found. Please install it and
我有一个使用 Xcode 在 ObjectiveC 中构建的 iOS 应用程序和一个使用 Xamarin.UITest 在 C# 中编写的 UITest,我正在尝试在 BitRise 中创建持续集成工
我的屏幕上有一个文本,显示如下: @"New element #13" 如何对其进行通用测试并通过掩码到达该元素? [[[XCUIApplication alloc] init].buttons[@"
我有一个新项目,我想实现 UITests,但是在初始化 Controller 时遇到以下问题... Error 我的 viewController 标识符是 MainView,我的 Storyboar
我的申请只有法语版。在 Storyboard中,我混合了细节和系统按钮。 在法国设备上启动时,一切都很好,系统按钮有法语名称。 我在我独特的方案中添加了启动时传递的参数 -AppleLanguages
我不确定这是否是好的做法,所以如果不是,请随时给我打电话。我有一个 UI 测试,旨在测试我的应用程序的欢迎屏幕。因此,在测试中,我想添加一个 if 语句,以确保在测试代码运行之前我位于正确的 View
我正在开发一个包含视觉表示(UI)的框架,并且我已经在其中编写了一些 UI 测试,但我无法运行在框架内编写的 UITest。 有人可以指导我是否可以在框架内编写 UITest 吗? 提前致谢。 最佳答
有人熟悉生成 UI 测试时的以下问题吗? Crashed Thread: 26 Dispatch queue: XCUIRecorder_iOS.processingQueue Exc
有一个按钮,点击按钮打开 facebook 登录页面,点击完成按钮返回主视图 Controller 。 这是我录制得到的代码 override func setUp() { supe
我正在尝试为我公司的应用编写 UITest。我看到了几篇关于将命令行参数传递给我的应用程序的文章,例如: if CommandLine.arguments.contains("--uitesting-
我目前正在处理一个包含许多异步代码的项目,并且我正在为这个项目编写 UITest。在开发过程中,我一个一个地运行它们,但从不成组运行。所以我认为测试是成功的。但是当一起测试它们时,大多数都失败了。我正
我正在为 Swift 应用程序使用 iOS UITest。我使用类似的东西, func testAllScreenNavigation() { let app = XCUIApplicatio
我一直在阅读 Apple 新的和改进的 XCTest/UITesting 框架,作为 Android 开发人员我有一些问题。在 android 中,要启动一个我没有源代码来运行 UiAutomator
尝试创建一个 UITest,用于在文本字段中输入电子邮件地址/密码,然后点击登录按钮。使用 Xcode。 我看到 UITest 导航到正确的页面,但它没有检测到文本字段。我确保两个文本字段都选中了“辅
下面是我正在尝试进行 UItest 的表格的图片。我需要验证“AU Auto”旁边是否存在复选标记(表示它已被选中)。我试着查看应用程序的 debugDescription 以找到任何类似于复选标记的
我尝试为我的应用程序开发一个 UI 单元测试。我创建了一个 UI 测试目标,并希望启动在创建目标时生成的示例 XCTest。 当我尝试启动测试时,我收到错误消息: Could not obtain t
我遇到了 Xamarin.UITest 问题,特别是屏幕截图功能。它没有按预期工作。 我正在尝试将“创建的”屏幕截图复制到另一个目录,但出现以下错误: Message: System.IO.FileN
我正在使用 Xamarin.UITest 用 C# 编写 UITest。 如何在 UITest 中动态检索设备屏幕的坐标? 最佳答案 在 Xamarin.UITest 中,当调用 app.Query(
我需要设置我的 模拟器 用于自动化 UI 测试。 特别是从键盘中删除自动更正、拼写检查、预测等。 我正在为这样的一个模拟器这样做: plutil -replace KeyboardAutocapita
我是一名优秀的程序员,十分优秀!