iOS 14小部件在实时应用上显示为黑色

问题描述

我正在开发使用widgetkit扩展程序的应用程序。我遇到了一个比较棘手的问题,例如小部件在开发方面正确显示,但是当我使应用程序上线时,它会向用户显示空白(黑色)小部件。

开发应用程序时的屏幕截图。

Development

启用应用程序时的屏幕截图。

Live application

以下是我的小部件的代码

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) 进行开发