问题描述
我正在开发使用widgetkit扩展程序的应用程序。我遇到了一个比较棘手的问题,例如小部件在开发方面正确显示,但是当我使应用程序上线时,它会向用户显示空白(黑色)小部件。
开发应用程序时的屏幕截图。
启用应用程序时的屏幕截图。
以下是我的小部件的代码
import SwiftUI
import WidgetKit
import UIKit
private struct Provider: TimelineProvider {
func placeholder(in context: Context) -> SimpleEntry {
SimpleEntry(date: Date(),water: drunkGlassesInML.convertInMLfromLTR())
}
func getSnapshot(in context: Context,completion: @escaping (SimpleEntry) -> Void) {
let entry = SimpleEntry(date: Date(),water: drunkGlassesInML.convertInMLfromLTR())
completion(entry)
}
func getTimeline(in context: Context,completion: @escaping (Timeline<Entry>) -> Void) {
var entries: [SimpleEntry] = []
let entryDate = Calendar.current.date(byAdding: .second,value: 10,to: Date())!
let entry = SimpleEntry(date: entryDate,water: drunkGlassesInML.convertInMLfromLTR())
entries.append(entry)
let timeline = Timeline(entries: entries,policy: .after(entryDate))
var timer = Timer()
timer = Timer.scheduledTimer(withTimeInterval: 1.0,repeats: true) { (timer) in
WidgetCenter.shared.reloadAllTimelines()
completion(timeline)
}
}
}
private struct SimpleEntry: TimelineEntry {
let date: Date
var water: String
}
解决方法
这似乎已在 12 月 3 日/12 月初修复。 您应该将 iOS 版本和 Xcode 更新到最新版本。
我之前在 iOS 14.2 和 Xcode 12 上遇到过这个问题。我现在在我的 iPhone 上运行 iOS 14.3,我正在使用 Xcode 12.3 (12C33) 进行开发