我正在尝试使用Fastlane使用快照工具截取我的应用的屏幕截图。但是,转换为Objective-C似乎无法正常工作。我将Project-Swift.h导入到我的ProjectUITests.m文件中,并且包含以下代码:
SnapshotHelper *snapshotHelper = [[SnapshotHelper alloc] init];
[snapshotHelper setLanguage:app];
[snapshotHelper snapshot:@"01Homescreen" waitForLoadingIndicator:YES];
但是,当我在命令行中运行命令“snapshot”时,出现以下错误:
Testing failed:
Use of undeclared identifier 'SnapshotHelper'
Use of undeclared identifier 'snapshotHelper'
(1 failure)
[12:14:52]: Exit status: 65
[12:14:52]: Tests failed - check out the log above
所以我的问题是,如何在我的ProjectUITests.m文件中成功运行SnapshotHelper.swift文件?
答案 0 :(得分:2)
我不得不更改SnapshotHelper.swift文件:
var deviceLanguage = ""
@objc class SnapshotHelper : NSObject { // <--- add this
@available(*, deprecated, message="use setupSnapshot: instead")
class func setLanguage(app: XCUIApplication) {
setupSnapshot(app)
}
...
} // ...@objc class
(以下是关于github的相关问题:https://github.com/fastlane/snapshot/issues/228)
我的Xcode不时没有为我创建桥接标题。最简单的解决方法是从项目中删除swift文件并再次添加。通常然后Xcode询问我是否需要桥接标题。
最终,您可能需要转到目标的构建设置&gt; Apple LLVM 7.0 - 语言 - 模块&gt;启用模块(C和Objective-C)= YES。