[英]StoreKit Testing In-App Purchases Xcode 12 beta & iOS 13 or below
[英]I have added Widgetkit to my app but now crash on iOS 13 when the app starts on Xcode 12 beta
我已將 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中,我快速導入該類。
但是如果沒有在任何地方添加 #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 上崩潰
另一個人(謝謝你,馬克)給了我解決方案。 將 WidgetKit.framework 標記為“可選”就成功了!
對於那些仍然有問題的人。 嘗試這些更改。
進行可選導入
#if canImport(WidgetKit)
import WidgetKit
#endif
檢查 iOS 版本
if #available(iOS 14, *) {
WidgetCenter.shared.reloadAllTimelines()
}
最后一步 - 最大的印象
將WidgetKit添加到Build Phase -> Link Libraries並使其成為可選
我錯過了最后一步,然后代碼也開始在 iOS 13 中工作。
我們有
#if canImport(WidgetKit)
@available(iOS 14.0, *)
崩潰仍在發生,顯然即使在 iOS 14 上也是如此。
我們將所有 WidgetCenter 調用移動到一個包含所有度量值和一個附加度量值的文件中:
NSClassFromString("WidgetKit.WidgetCenter")
出於某種原因,我們還不能解釋,這實際上在某些情況下返回 nil 。 我們阻止了崩潰,但在這些情況下,這意味着我們無法真正使用 WidgetCenter API。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.