Hi,
I'm currently dealing with a strange issue sinds the release builds of Xcode 14.
I'm currently using Xcode version 14.0.1 (14A400) and have an iOS-app with WidgetKit and Sirikit and a Watch-app with WidgetKit enabled. Everything is set up and was working as expected in the latest Xcode 14 Beta builds, but stopped working after the final release.
My app is set up to store an access token and some other identifiers in keychain. The widgets (or Siri Shortcuts) use the shared keychain to get the access token (and other data) to perform backend requests.
It only happens when I try to build on simulators. The app itself (iOS and WatchOS-app) do work, but getting data from keychain on the widgets or Sirikit returns in empty values, as if keychain sharing is not set up correctly. When building on device or in ad-hoc builds, the widgets and Siri shortcuts are working as expected.
Anyone else dealing with the same issue(s)? Or any tips/tricks to resolve the issue?
Thanks in advance!
Post
Replies
Boosts
Views
Activity
Hi,
I followed excactly the steps in https://developer.apple.com/videos/play/wwdc2022/10050 to add Widgetkit for watchOS to my existing iOS Widgets.
Both widgets do work for iOS, but on my Apple Watch, my widget is invisible to be set as a complication.
Any idea what I'm doing wrong?
...
@available(iOSApplicationExtension 16.0, *)
struct MyWidget: Widget {
private let kind: String = "MyWidget"
var body: some WidgetConfiguration {
return IntentConfiguration(kind: kind, intent: WidgetConfigurationIntent.self, provider: Provider()) { entry in
MyWidgetComponent(entry: entry)
}
.configurationDisplayName("widget_name_description".localized())
.description("widget_name_description".localized())
.supportedFamilies([.accessoryCircular, .accessoryRectangular, .accessoryInline])
}
}
@main
struct MyAppWidgets: WidgetBundle {
#if os(watchOS)
var body: some Widget {
return MyWidget()
}
#else
var body: some Widget {
if #available(iOS 16.0, *) {
return WidgetBundleBuilder.buildBlock(OtherIosWidget(), MyWidget())
} else {
return OtherIosWidget()
}
}
#endif
}
...