#cloudkit — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #cloudkit, aggregated by home.social.
-
Part 3 of my SwiftData and iCloud sync series is up. It covers what you only see once the app runs on someone else's device.
Your empty state is now a loading state. A second device opens empty and fills in, so the view you wrote for new users asks people to add data they already have.
Your widget does not hear about remote changes. Your app merges them and calls reloadTimelines, or nothing happens.
And the CloudKit schema only ever grows.
https://www.thorsten-stark.de/posts/2026-08-13-Shipping-A-SwiftData-App-With-iCloud-Sync-Part-3/
-
If your app seeds initial data and that data syncs over iCloud, be aware of duplicates.
When the iPhone seeds 12 subjects on first launch and the iPad later on first start finds an empty store, it seeds its own 12. iCloud sync then merges both sets and the user ends up with 24. Nothing errors, and CloudKit rules out @ Attribute(.unique).
Use fixed identifiers for seeded objects instead of fresh UUIDs. Cheap before release, painful after.
-
Worth remembering: turn on iCloud sync and your SwiftData models have to follow CloudKit's rules. Some of what SwiftData gives you is now off the table.
No @ Attribute(.unique) and no #Unique; leave one in and the container fails to initialize. Every property optional or defaulted. Every relationship optional and with an inverse.
I wrote up what I had to change in my apps: https://www.thorsten-stark.de/posts/2026-07-30-Enabling-iCloud-Sync-For-SwiftData-Part-1/
-
Just got in from the coding shed. Satisfied - got public and private CloudKit syncing code working in a new app. My brain is starting to cool down now into Sunday evening.
#indiedev #swiftui #cloudkit #swiftdata -
Just got in from the coding shed. Satisfied - got public and private CloudKit syncing code working in a new app. My brain is starting to cool down now into Sunday evening.
#indiedev #swiftui #cloudkit #swiftdata -
Versuche gerade in meiner App #SimpleMovieTracker (https://apps.apple.com/de/app/simplemovietracker/id6749536059
SimpleMovieTracker) #CloudKit zu integrieren. Schema umstellen, erster Versuch im Simulator: Funktioniert alles super.
In Testflight auf meinem Gerät in Production funktioniert es dann nicht mehr sauber - nur ein Teil der Daten wird gesynct. 🫠
#iOS #developmentEdit: Fehler gefunden - Es fehlten noch Eigenschaften in CloudKit, weil ich die Eigenschaften in der App nicht angefasst hatte...
-
Versuche gerade in meiner App #SimpleMovieTracker (https://apps.apple.com/de/app/simplemovietracker/id6749536059
SimpleMovieTracker) #CloudKit zu integrieren. Schema umstellen, erster Versuch im Simulator: Funktioniert alles super.
In Testflight auf meinem Gerät in Production funktioniert es dann nicht mehr sauber - nur ein Teil der Daten wird gesynct. 🫠
#iOS #developmentEdit: Fehler gefunden - Es fehlten noch Eigenschaften in CloudKit, weil ich die Eigenschaften in der App nicht angefasst hatte...
-
Had a productive day today on the coding front. I redid some of my @CloudKit sync logic (amazing how much more sense things make when you draw it out on paper 🤔) and it looks like it’s working now.
#indiedev #cloudkit #swiftdata #swiftui -
Had a productive day today on the coding front. I redid some of my @CloudKit sync logic (amazing how much more sense things make when you draw it out on paper 🤔) and it looks like it’s working now.
#indiedev #cloudkit #swiftdata #swiftui -
Bin gerade dabei #CloudKit in meine iOS-App zu integrieren. Setze mich dementsprechend mit dem Thema außeinander.
Ziemlich interessant das ganze 🙃 -
Bin gerade dabei #CloudKit in meine iOS-App zu integrieren. Setze mich dementsprechend mit dem Thema außeinander.
Ziemlich interessant das ganze 🙃 -
I have a Core Data question.
You need to persist an arbitrary [Int] from a remote API. The array is never queried, only stored, updated and retrieved. It also needs to work with NSPersistentCloudKitContainer.
Which approach would you choose and why?
I’m interested in the reasoning behind your choice.
-
I have a Core Data question.
You need to persist an arbitrary [Int] from a remote API. The array is never queried, only stored, updated and retrieved. It also needs to work with NSPersistentCloudKitContainer.
Which approach would you choose and why?
I’m interested in the reasoning behind your choice.
-
Why I chose SwiftData + CloudKit for Roost — even though
they're still rough at the edges:✅ Apple ID-only auth (no third-party backend)
✅ Private database = Apple can't read user data
✅ Zero server cost for me as an indieThe trade-off: CloudKit's relationship rules took me 2 hours
to debug today (turns out both sides of a one-to-many need
to be declared, not just the inverse side).
But for a local-first app, the privacy trade-off is worth it. -
When working on @tact, I have lately encountered several CloudKit bugs in the area of notifications and developer experience. So I thought I’ll just do an inventory of them in a thread.
All are also filed as Feedbacks to Apple. I usually don’t care about feedbacks any more, but sometimes I had good labs during WWDC based on feedbacks, so I mainly just filed them as labs homework.
-
When working on @tact, I have lately encountered several CloudKit bugs in the area of notifications and developer experience. So I thought I’ll just do an inventory of them in a thread.
All are also filed as Feedbacks to Apple. I usually don’t care about feedbacks any more, but sometimes I had good labs during WWDC based on feedbacks, so I mainly just filed them as labs homework.
-
Tying my brain in knots trying to figure out a sync logic issue. I've got repeating tasks, wherein the new instances of the task are created by a background job when the relevant criteria are true. Trying to work out how to handle two devices independently deciding to create the instance, before syncing.
-
Tying my brain in knots trying to figure out a sync logic issue. I've got repeating tasks, wherein the new instances of the task are created by a background job when the relevant criteria are true. Trying to work out how to handle two devices independently deciding to create the instance, before syncing.
-
Fun With SwiftData and CloudKit!: https://pmcconnell.micro.blog/2026/04/30/fun-with-swiftdata-and-cloudkit.html
-
Fun With SwiftData and CloudKit!: https://pmcconnell.micro.blog/2026/04/30/fun-with-swiftdata-and-cloudkit.html
-
Ważna aktualizacja iOS 26.4.1. Apple naprawia irytujący błąd i wymusza lepszą ochronę
Apple udostępniło najnowszą, pomniejszą aktualizację systemu dla iPhone’ów oraz iPadów. Choć oficjalna, lakoniczna lista zmian wspomina jedynie o poprawkach błędów, w rzeczywistości iOS 26.4.1 przynosi dwa bardzo ważne rozwiązania.
Jedno z nich ratuje synchronizację danych w chmurze, a drugie uszczelnia bezpieczeństwo w urządzeniach firmowych.
Czasami najmniejsze aktualizacje potrafią uratować najwięcej nerwów. W ostatnich dniach część użytkowników i deweloperów skarżyła się na uciążliwe problemy z działaniem struktury CloudKit. Prowadziło to do błędów w synchronizacji danych z iCloud w wielu zewnętrznych aplikacjach. Wersja iOS 26.4.1 ostatecznie eliminuje ten problem, przywracając płynny przepływ informacji między urządzeniami.
Ochrona skradzionego urządzenia jako absolutny standard
Druga, znacznie istotniejsza zmiana dotyczy bezpieczeństwa. Zwykli użytkownicy otrzymali domyślnie włączoną funkcję „Ochrony skradzionego urządzenia” już w wersji iOS 26.4. Teraz Apple robi kolejny krok, obejmując tym samym rygorem sprzęt zarządzany przez organizacje (MDM).
Aktualizacja do iOS 26.4.1 oraz iPadOS 26.4.1 automatycznie aktywuje tę warstwę zabezpieczeń na wszystkich służbowych smartfonach i tabletach. Funkcja ta znacznie utrudnia życie przestępcom – w przypadku kradzieży sprzętu, nawet jeśli złodziej zna nasz kod blokady, system wymusza uwierzytelnienie biometryczne (Face ID lub Touch ID) do wyświetlenia haseł czy zmiany wrażliwych danych. Co więcej, jeśli znajdujemy się poza zaufaną lokalizacją (jak dom czy biuro), zmiana hasła do konta Apple wymaga dodatkowo odczekania pełnej godziny i ponownego skanowania twarzy lub palca.
Wyścig zbrojeń i pomoc ze strony sztucznej inteligencji
Ten ruch idealnie wpisuje się w to, co od kilku tygodni dzieje się w Cupertino. Apple znajduje się obecnie w trakcie mocnej ofensywy nastawionej na uszczelnianie swoich systemów operacyjnych. Niedawno w trybie pilnym łatano groźne luki o nazwach Coruna i DarkSword, które zagrażały bezpieczeństwu użytkowników.
W tle pojawia się również fascynujący wątek sztucznej inteligencji. Jak donosi serwis 9to5Mac, firma Anthropic zaoferowała gigantom technologicznym (w tym Apple) dostęp do potężnego modelu AI o nazwie Mythos. System ten specjalizuje się w odnajdywaniu krytycznych luk w oprogramowaniu. Możemy się więc spodziewać, że to nie ostatnia tego typu aktualizacja w najbliższym czasie.
Jeśli jeszcze nie zaktualizowaliście swoich iPhone’ów, warto zajrzeć do ustawień i pobrać wersję 26.4.1.
#AktualizacjaSystemu #Apple #Bezpieczeństwo #CloudKit #iCloud #iOS26 #iOS2641 #iPhone #OchronaSkradzionegoUrządzeniaExploit DarkSword wykorzystuje luki w starszych wersjach iOS i iPadOS
-
Ważna aktualizacja iOS 26.4.1. Apple naprawia irytujący błąd i wymusza lepszą ochronę
Apple udostępniło najnowszą, pomniejszą aktualizację systemu dla iPhone’ów oraz iPadów. Choć oficjalna, lakoniczna lista zmian wspomina jedynie o poprawkach błędów, w rzeczywistości iOS 26.4.1 przynosi dwa bardzo ważne rozwiązania.
Jedno z nich ratuje synchronizację danych w chmurze, a drugie uszczelnia bezpieczeństwo w urządzeniach firmowych.
Czasami najmniejsze aktualizacje potrafią uratować najwięcej nerwów. W ostatnich dniach część użytkowników i deweloperów skarżyła się na uciążliwe problemy z działaniem struktury CloudKit. Prowadziło to do błędów w synchronizacji danych z iCloud w wielu zewnętrznych aplikacjach. Wersja iOS 26.4.1 ostatecznie eliminuje ten problem, przywracając płynny przepływ informacji między urządzeniami.
Ochrona skradzionego urządzenia jako absolutny standard
Druga, znacznie istotniejsza zmiana dotyczy bezpieczeństwa. Zwykli użytkownicy otrzymali domyślnie włączoną funkcję „Ochrony skradzionego urządzenia” już w wersji iOS 26.4. Teraz Apple robi kolejny krok, obejmując tym samym rygorem sprzęt zarządzany przez organizacje (MDM).
Aktualizacja do iOS 26.4.1 oraz iPadOS 26.4.1 automatycznie aktywuje tę warstwę zabezpieczeń na wszystkich służbowych smartfonach i tabletach. Funkcja ta znacznie utrudnia życie przestępcom – w przypadku kradzieży sprzętu, nawet jeśli złodziej zna nasz kod blokady, system wymusza uwierzytelnienie biometryczne (Face ID lub Touch ID) do wyświetlenia haseł czy zmiany wrażliwych danych. Co więcej, jeśli znajdujemy się poza zaufaną lokalizacją (jak dom czy biuro), zmiana hasła do konta Apple wymaga dodatkowo odczekania pełnej godziny i ponownego skanowania twarzy lub palca.
Wyścig zbrojeń i pomoc ze strony sztucznej inteligencji
Ten ruch idealnie wpisuje się w to, co od kilku tygodni dzieje się w Cupertino. Apple znajduje się obecnie w trakcie mocnej ofensywy nastawionej na uszczelnianie swoich systemów operacyjnych. Niedawno w trybie pilnym łatano groźne luki o nazwach Coruna i DarkSword, które zagrażały bezpieczeństwu użytkowników.
W tle pojawia się również fascynujący wątek sztucznej inteligencji. Jak donosi serwis 9to5Mac, firma Anthropic zaoferowała gigantom technologicznym (w tym Apple) dostęp do potężnego modelu AI o nazwie Mythos. System ten specjalizuje się w odnajdywaniu krytycznych luk w oprogramowaniu. Możemy się więc spodziewać, że to nie ostatnia tego typu aktualizacja w najbliższym czasie.
Jeśli jeszcze nie zaktualizowaliście swoich iPhone’ów, warto zajrzeć do ustawień i pobrać wersję 26.4.1.
#AktualizacjaSystemu #Apple #Bezpieczeństwo #CloudKit #iCloud #iOS26 #iOS2641 #iPhone #OchronaSkradzionegoUrządzeniaExploit DarkSword wykorzystuje luki w starszych wersjach iOS i iPadOS
-
RE: https://mastodon.social/@lukaskubanek/116317203336604688
Delivery of CloudKit notifications looks broken in iOS 26.4
One of the core technologies and services of the platform does not work
And the best guidance Apple has to offer to developers is “file a FB and maybe we take a look. Make sure you generate lots of duplicate FBs because otherwise we will not take it seriously”
Okay then
-
RE: https://mastodon.social/@lukaskubanek/116317203336604688
Delivery of CloudKit notifications looks broken in iOS 26.4
One of the core technologies and services of the platform does not work
And the best guidance Apple has to offer to developers is “file a FB and maybe we take a look. Make sure you generate lots of duplicate FBs because otherwise we will not take it seriously”
Okay then
-
CloudKit and APNS is the bane of my existence
I create a visible subscription for inserted CKRecords that should just work
The records are fine and arrive with a fetch
But simply no push in development environment is sent for them
Are there any known issues for CloudKit push notifications in development environment, or any recent known good debugging and inspection methods for what is really going on? I wish I had delivery log on server side, but no such thing.
-
CloudKit and APNS is the bane of my existence
I create a visible subscription for inserted CKRecords that should just work
The records are fine and arrive with a fetch
But simply no push in development environment is sent for them
Are there any known issues for CloudKit push notifications in development environment, or any recent known good debugging and inspection methods for what is really going on? I wish I had delivery log on server side, but no such thing.
-
I somehow assumed Apple would treat the #CloudKit bug as top priority without giving it a second thought, so I actually overlooked the phrasing the DTS engineer used in their post that @iandundas pointed out. Kinda crazy!
-
I somehow assumed Apple would treat the #CloudKit bug as top priority without giving it a second thought, so I actually overlooked the phrasing the DTS engineer used in their post that @iandundas pointed out. Kinda crazy!
-
Looks like Apple broke #CloudKit sync in OS 26.4. Remote notifications don’t seem to arrive, so no updates unless the app is relaunched. https://developer.apple.com/forums/thread/820550
-
Looks like Apple broke #CloudKit sync in OS 26.4. Remote notifications don’t seem to arrive, so no updates unless the app is relaunched. https://developer.apple.com/forums/thread/820550
-
I’m working on a #SwiftUI “admin” utility macOS app that’s pretty information dense and probably should be very hierarchical (for editing #CloudKit entities).
Is this navigationSplitView navigation structure too wild (possible)?
It’s kind of a 3 + 1 column Split View, but the 4th “column” is just an (optional) inspector view on the detail view. The content column would be a small table of entities (instead of a list view like most apps).
-
I’m working on a #SwiftUI “admin” utility macOS app that’s pretty information dense and probably should be very hierarchical (for editing #CloudKit entities).
Is this navigationSplitView navigation structure too wild (possible)?
It’s kind of a 3 + 1 column Split View, but the 4th “column” is just an (optional) inspector view on the detail view. The content column would be a small table of entities (instead of a list view like most apps).
-
#iosdev #buildInPublic #coredata #swiftTesting
Will be exploring Apple’s cktool for #cloudkit setup, which hopefully will let me populate data that will let me test sync
https://developer.apple.com/icloud/ck-tool/
27/n
-
Wondering if you can share your data with SQLiteData from @pointfreeco Well wonder no more. It just works!!!!!
Fantastic #CloudKit #Swift #SwiftUI #SQLite -
Wondering if you can share your data with SQLiteData from @pointfreeco Well wonder no more. It just works!!!!!
Fantastic #CloudKit #Swift #SwiftUI #SQLite -
#iosdev #buildInPublic #coredata #cloudKit
Roughed in a little prototype - UI mostly done, some test classes to create Tunes and TuneSets. Tomorrow rough in Collections. Nice that UIKit now lets us add UISplitViewControllers as tabs on UITabControllers.
15/n
-
#iosdev #buildInPublic #coredata #cloudKit
So the next question is - create a purpose-built prototype to experiment with attributed relationships or bang away at a disposable branch of my main project? I know what I _should_ do... And it will make things easier to share here without distractions. So a new project using Storyboard (i.e. UIKit) template with CoreData. Minimum deployment will be iOS 17. No CloudKit as yet, I want to be able to test migration from ordered many:many .
14/n
-
#iosdev #buildInPublic #coredata #cloudKit
Enough for tonight. Tomorrow I'll start prototyping the migration from explicitly ordered many:many to implicitly ordered via intermediate attributed relationship objects.
13/n
-
#iosdev #buildInPublic #coredata #cloudKit
Enough for tonight. Tomorrow I'll start prototyping the migration from explicitly ordered many:many to implicitly ordered via intermediate attributed relationship objects.
13/n
-
#iosdev #buildInPublic #coredata #cloudKit I also have make sure I'm selecting the Private database and the com.apple.coredata.cloudkit'recordName' is not marked queryable
https://lyons.app/2021/07/05/how-to-fix-field-recordname-is-not-marked-queryable-in-cloudkit/
gave me the answer: I have to modify the schema by adding a queryable index called recordName to the recordName metadata field for each record type so I can view the records. I also have make sure I'm selecting the Private database and the com.apple.coredata.cloudkit zone.
12/n
Edit: to fix link -
#iosdev #buildInPublic #coredata #cloudKit I also have make sure I'm selecting the Private database and the com.apple.coredata.cloudkit'recordName' is not marked queryable
https://lyons.app/2021/07/05/how-to-fix-field-recordname-is-not-marked-queryable-in-cloudkit/
gave me the answer: I have to modify the schema by adding a queryable index called recordName to the recordName metadata field for each record type so I can view the records. I also have make sure I'm selecting the Private database and the com.apple.coredata.cloudkit zone.
12/n
Edit: to fix link -
#iosdev #buildInPublic #coredata #cloudKit
Got the demo working after some annoying debug sessions. Seems like it has not been revisited since 2022, and iOS 18 changed the behaviour of collectionView.dequeueReusableCell - as of iOS 18 it asserts if you call it outside of cellForItemAt indexpath. it was being called in awakeFromNib to set a font.
You would think that a company with the resources of Apple would at a minimum task interns to COMPILE AND RUN demos called out in the docs 11/n
-
#iosdev #buildInPublic #coredata #cloudKit
Got the demo working after some annoying debug sessions. Seems like it has not been revisited since 2022, and iOS 18 changed the behaviour of collectionView.dequeueReusableCell - as of iOS 18 it asserts if you call it outside of cellForItemAt indexpath. it was being called in awakeFromNib to set a font.
You would think that a company with the resources of Apple would at a minimum task interns to COMPILE AND RUN demos called out in the docs 11/n
-
#iosdev #buildInPublic #coredata #cloudKit
There is some Apple demo code from WWDC 2022 that gives an example of deduplication on CloudKit sync. It's a simplified demo but it does give an example of a many:many (unordered) relationship. Let's see if we can get it running.
https://developer.apple.com/documentation/coredata/synchronizing-a-local-store-to-the-cloud10/n
-
#iosdev #buildInPublic #coredata #cloudKit
There is some Apple demo code from WWDC 2022 that gives an example of deduplication on CloudKit sync. It's a simplified demo but it does give an example of a many:many (unordered) relationship. Let's see if we can get it running.
https://developer.apple.com/documentation/coredata/synchronizing-a-local-store-to-the-cloud10/n
-
And here is the blog post detailing the changes.
https://smork.info/blog/posts/beer-diary-version-2-4-released/
-
#indiedev #irishmusic #iosdev #buildInPublic #coredata #cloudKit
As an aside - I've learned a lot about CoreData and CloudKit from @fatbobman's blog.
-
#indiedev #irishmusic #iosdev #buildInPublic #coredata #cloudKit
As an aside - I've learned a lot about CoreData and CloudKit from @fatbobman's blog.
-
#indiedev #irishmusic #iosdev #buildInPublic #coredata #cloudKit
Apple has improved their migration support since I last looked - migrating to the data model outlined above would work as a staged migration:
- add the new entities and any attributes needed to define ordering or deduplication
- populate the intermediate attributed relationships
- delete the old entitieshttps://developer.apple.com/documentation/coredata/staged-migrations
Now we can safely move from NSPersistentContainer to a NSPersistentCloudKitContainer
8/n -
#indiedev #irishmusic #iosdev #buildInPublic #coredata #cloudKit
Apple has improved their migration support since I last looked - migrating to the data model outlined above would work as a staged migration:
- add the new entities and any attributes needed to define ordering or deduplication
- populate the intermediate attributed relationships
- delete the old entitieshttps://developer.apple.com/documentation/coredata/staged-migrations
Now we can safely move from NSPersistentContainer to a NSPersistentCloudKitContainer
8/n -
#indiedev #irishmusic #iosdev #buildInPublic #coredata #cloudKit
Now we've sketched out a workable data model that works in both coreData and CloudKit, we need to work out:
- how to migrate from the existing model to the new one without losing data.
- how to handle merging databases from different devices given that the user might have duplicate entries or collections with different members or different ordering7/n
-
#indiedev #irishmusic #iosdev #buildInPublic #coredata #cloudKit
Now we've sketched out a workable data model that works in both coreData and CloudKit, we need to work out:
- how to migrate from the existing model to the new one without losing data.
- how to handle merging databases from different devices given that the user might have duplicate entries or collections with different members or different ordering7/n
-
#indiedev #irishmusic #iosdev #buildInPublic #coredata #cloudKit
diagrams of where we are so far…
6/n