【发布时间】:2020-12-17 10:46:45
【问题描述】:
我已将 WidgetKit 添加到我的应用程序中,但在 iOS 13 设备上,当应用程序启动并出现以下错误时它会崩溃: dyld`__abort_with_payload
导致崩溃的部分代码是这样的:
static func reloadTimelines () {
if #available(iOS 14, *) {
WidgetCenter.shared.reloadTimelines(ofKind: "com.myDomain.myApp.ProgressWidget")
}
}
我尝试过其他类似这样的不成功变体:
@available(iOS 14, *)
static func reloadTimelines () {
WidgetCenter.shared.reloadTimelines(ofKind: "com.myDomain.myApp.ProgressWidget")
}
项目在objective-c中,我用swift导入了那个类。
但是如果没有在任何地方添加 #import "myApp-Swift-h",或者使用该类,它就会一直崩溃。
谁能告诉我我做错了什么或发生了什么?
提前致谢。
编辑: 我在 Xcode 11 上尝试此代码并工作!
#if canImport(WidgetKit)
WidgetCenter.shared.reloadTimelines(ofKind: "com.literautas.StoryPlanner.ProgressWidget")
#endif
但它在 Xcode 12 beta 4 上崩溃
编辑 2:它也在 Xcode 12 beta 6 上崩溃
【问题讨论】:
-
请看我的回答,轻松解决这个问题,stackoverflow.com/a/64809435/1002338
-
请看我的回答,轻松解决这个问题,stackoverflow.com/a/64809435/1002338
-
@Mona 这个解决方案是不可能的,因为必须支持使用旧版本 ios 的用户
-
@Tomeu Mascó 是的。应用程序的目标 iOS 版本可以保持不变。即使是旧今天小部件的目标 iOS 也可以保持原样。这只是将您添加到项目中的新小部件目标的 iOS 版本设置为 14。
-
主应用和小部件的目标 iOS 可以不同。
标签: ios objective-c swift xcode12 widgetkit