为什么来自iOS应用程序的小部件在iOS 16上的列表中不可用,而在iOS 17和15上可用?
这就是它们在widget bundle中的定义:
import WidgetKit
import SwiftUI
@main
struct ZeroWidgetBundle: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
FirstWidgetBundle().body
SecondWidgetBundle().body
ThirdWidgetBundle().body
}
}
struct FirstWidgetBundle: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
WidgetLatestNews()
WidgetLatestVideos()
WidgetDailyText()
WidgetOfficialSite()
}
}
struct SecondWidgetBundle: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
WidgetWatchtowerStudy()
WidgetCurrentMonth()
WidgetComing()
if #available(iOS 16.1, *) {
WidgetCurrentTime()
}
}
}
struct ThirdWidgetBundle: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
WidgetMinistry()
if #available(iOS 17.0, *) {
WidgetTimer()
}
}
}
它只对17和15有效,对16无效。17号被释放后就开始了。它以前是有效的。问题出在哪里?
这是屏幕截图,你可以看到问题。确切地说,THE EQUIPMENT代码是使用**Xcode 15.0(15A240d)**在三个设备上编译的。
苹果反馈助手:
https://feedbackassistant.apple.com/feedback/13250847
1条答案
按热度按时间3htmauhk1#
解决办法很简单。没有解释为什么Xcode编译被
#available
(这里是WidgetTimer
)排除的代码。但工作的解决方案如下: