It is only for members right? Because I downloaded and obviously when I login in the simulator it says, I need to be a member It was not clear from the tutorial, I thought I just did not need to be a professional subscriber. It makes sense I guess otherwise I would have access to all your videos. I might subscribe one day
I did not know your app is open source. All in SwiftUI and Combine. Impressive!
ah, of course, the app streams the video courses! sorry! you donāt need to have a professional subscription, but I guess you do need the standard subscription. Iāll ask the gatekeeper if we can do anything.
hi Laurent! Thanks for your patience ā Iāve replaced the projects with a version that allows non-subscribers to fetch the list of tutorials. And Iāve added a note at the top about non-subscribers. Thanks for the heads up!
Thanks for making this tutorial! I really liked how it shows how to use data across targets with App Groups so the data can be shared.
One issue I had at the end is it has errors saying āCannot find type āTimelineIntervalIntentā in scopeā. It builds successfully though and lets the widget be configured. (Also the final project does the same thing).
thanks Justin! it seems to be a beta 2 bug. I pulled beta 1 out of the trash and the project builds there without that warning. Hopefully Apple will fix it before GM.
For anyone else getting a bunch of non-specific build errors after adding the Widget target, I was able to solve it by just cleaning the build folder and re-building.
Continuing on, there appear to be a few changes to the Starter Code not represented on the tutorial page.
1.
public typealias Entry = SimpleEntry
has been replaced with:
let entry = SimpleEntry
āpublic typealias entryā does not appear in the starter code project.
2.
snapshot(with:completion:)
has been replaced with:
snapshot(in:completion:)
General feedback:
1.
First, delete EmitronWidgetEntryView. Youāll use your EntryView instead.
Should specify that youāre deleting the EmitronWidgetEntryView within var body: some WidgetConfigruation . When I first read that instruction I was baffled as to why I would be deleting the struct I had just updated during the previous step.
2. I may be doing something wrong, but āPlaceholderViewā doesnāt appear in my project. Given where it is in the Final project, Iām guessing itās now auto-generated with the title EmitronWidgetEntryView.
3. The StaticConfig init youāre using is already deprecated :(
thanks for flagging these Xcode beta updates, Sean!
sorry about the confusion over EmitronWidgetEntryView ā that instruction is in the middle of editing EmitronWidget.swift and the two structs have different names, so we didnāt think it needed more specification.
Settings does not work with me with message unable to load, I spent a day try to find out what wrong, and then I noticed this ( Make sure its target is both emitron and EmitronWidgetExtension )
Thank you for tut! Having build failures building the initial starter app. Project > package loading error > first failure is āFailed to recurse into submodule path 'Tests/Performace/Realmā. Then 5 issues on emitron target (āPackage resolution errors must be fixed before buildingā).
In Swift Package Dependencies it looks like all the packages download ok. Iāve tried all the usual cleaning rituals:
deleting derived data
cleaning build folder
reset package caches
update to latest package versions
Iām on Xcode 12.2. beta. Any ideas appreciated. Thx!
hi Tarek! apologies, that was a late discovery for us too. Iāll add a screenshot to make it more obvious. Thereās also another instruction on Appleās documentation page that Iāll add, although it didnāt seem to make any difference.
When did you last run this project? and which version of Xcode are you using? Because now Iām getting the same build failures as superredviking
hi superredviking! I updated the code to 12.2 beta just a week ago and it worked fine. But now itās failing the same as yours. Even in Xcode 12.0. Iāve emailed the error log to the emitron developer but itās midnight where he is. Looking at the errors, it might be something in the 3rd party packages
Cannot make the Intent working on my own project. I have widgets showing data from one out of 3 accounts. I wanna allow user to pick account 1, 2 or 3 like you do with timeInterval but it does not work for me.
So I tried exactly your way to see if I could play with time interval refresh but even this does not work on my project.
Anywhere to redirect? Thereās not much out on these widgets yet.
Your tutorial helped tremendously other than the intent. Looking forward to have this fixed or revised.
hi Florent! great that you found a fix! Unfortunately itās something we all get used to, having to restart Xcode or even the Mac. Also Product Clean and delete DerivedData.
This tutorial has been great in learning to integrate widgets into an existing codebase. Everything has worked great but I have come across just a few problems in the final step. Iām using Xcode 12.3.
I am still encountering the āCannot find type āTimelineIntervalIntentā in scopeā error, but this time I cannot build the project at all, as itās now along with a number of other errors that have been introduced at this step.
āType āProviderā does not conform to protocol āIntentTimelineProviderāā
āCannot find type āTimelineIntervalIntentā in scopeā
āCannot convert value of type āWidgetContentā to expected argument type āTimelineāā
āReference to invalid associated type āEntryā of type āProviderāā
āCannot find āconfigurationā in scopeā
āInitializer āinit(kind:intent:provider:content:)ā requires the types āTimelineIntervalIntentā and āProvider.Intentā be equivalentā
āCannot find type āTimelineIntervalIntentā in scopeā
āCannot convert value of type ā(WidgetContent) ā EntryViewā to expected argument type ā(Provider.Entry) ā EntryViewāā
The app does not build and therefore I cannot see the user configuration in action, which is really annoying
The only other thing I have encountered was that when adding to ContentRepository.swift in the āWriting the Contents Fileā step, the breakpoint was never being hit yet the app still built and the widget was working as intended.