【发布时间】:2017-03-05 17:23:53
【问题描述】:
我正在使用 Fastlane's snapshot 为我即将提交到 App Store 的应用创建屏幕截图。
它在大多数情况下都“像宣传的那样”工作,但它似乎不喜欢我在我的应用程序中访问 UserDefaults 的方式。在一项测试中,它会生成 Exit status: 65 错误。
UI Testing Failure - com.me.MyApp crashed in (extension in MyApp):__ObjC.NSObject.defaultTime () -> Swift.Float
我发现UserDefaults.standard.value(forKey: "defaultTime") 收到了一个语法错误的邀请,因此我创建了一个扩展程序来访问UserDefaults。这是扩展的样子:
class CustomExtensions: NSObject {
/*
This is blank. Nothing else in here. No really...nothing else
*/
}
extension NSObject {
// User Defaults
func defaultTime() -> Float {
return UserDefaults.standard.value(forKey: "defaultTime") as! Float
}
// a bunch of other UserDefaults
}
在应用程序中,每当我需要defaultTime 时,我只需输入defaultTime()。使用此方法访问UserDefaults 值在模拟器和我测试过的设备上运行良好。我只遇到snapshot的问题。
我尝试在测试中添加sleep(1),但这似乎没有任何作用。我欢迎以下建议:访问UserDefaults 的替代方法,使我能够在整个 MyApp 中轻松访问它们。
【问题讨论】:
标签: ios swift snapshot xcode-ui-testing fastlane