Post

Replies

Boosts

Views

Activity

How to get notified on CKError.quotaExceeded
Hi all, I have an iOS app which uses CloudKit and the standard NSPersistentCloudKitContainer, which I rely on for syncing app data between the user's devices. If the user's iCloud account is full I can see a log message while debugging in Xcode shortly after startup which looks something like this: error: CoreData+CloudKit: -[NSCloudKitMirroringDelegate _requestAbortedNotInitialized:](2183): <NSCloudKitMirroringDelegate: 0x281ddc1e0> - Never successfully initialized and cannot execute request '<NSCloudKitMirroringExportRequest: 0x2841e00f0> 51383346-87BA-44D8-B527-A0B1EE35A0EF' due to error: <CKError 0x282c50db0: "Partial Failure" (2/1011); "Failed to modify some records"; uuid = 7BA17495-4F05-4AF4-A463-C0DF5A823B2E; container ID = "iCloud.com.neufsters.pangram"; partial errors: { E30B2972-FD4B-4D2A-BD1C-EB6F33F5367D:(com.apple.coredata.cloudkit.zone:__defaultOwner__) = <CKError 0x282c155f0: "Quota Exceeded" (25/2035); server message = "Quota exceeded"; op = FC4D3188D0A46ABC; uuid = 7BA17495-4F05-4AF4-A463-C0DF5A823B2E; Retry after 315.0 seconds> 2FC9A487-D630-444D-B7F4-27A0F3A6B46E:(com.apple.coredata.cloudkit.zone:__defaultOwner__) = <CKError 0x282c52820: "Quota Exceeded" (25/2035); server message = "Quota exceeded"; op = FC4D3188D0A46ABC; uuid = 7BA17495-4F05-4AF4-A463-C0DF5A823B2E; Retry after 315.0 seconds> 903DD6A0-0BD8-46C0-84FB-E89797514D9F:(com.apple.coredata.cloudkit.zone:__defaultOwner__) = <CKError 0x282c513e0: "Quota Exceeded" (25/2035); server message = "Quota exceeded"; op = FC4D3188D0A46ABC; uuid = 7BA17495-4F05-4AF4-A463-C0DF5A823B2E; Retry after 315.0 seconds> }> I would like to know how I can get a callback of some sort so I can run code if this CloudKit/CoreData error happens. In particular I'd like to put up some sort of warning to the user letting them know their data isn't going to sync. Please note that I'm not looking for how to do error handling as a result of a user-initiated CloudKit API call. I'm looking for how to get notified when the background syncing logs errors like the above. Thanks, Russ
5
3
910
Jan ’24
How to test an IAP in the sandbox on an Apple Watch
Hi all, I'd like to test the purchase and restore code I've written for an IAP for an Apple Watch app. The (physical) phone that the (physical) watch is paired with has a sandbox user logged in in the App Store settings. Whenever I try to buy the IAP I get the following error screen: Any suggestions on what I should be doing? Is it possible to test an IAP purchase with a sandbox user on an Apple Watch app? Thanks, Russ
0
0
512
Jun ’22
Is it possible to charge for an Apple Watch app while having the iOS version be free?
I have an app in the App Store which is free to download and has IAPs for unlocking features. I've created a slimmed down watchOS version of the app. I'd like to charge $.99 for the watchOS app while still leaving the iOS app free to download. Is this possible? Or do I have to assume the watchOS app must also be free and have an IAP in the watch app? Thanks, Russ
1
0
497
Jun ’22
How to resubmit an In-App Purchase for review
Hi all, I submitted an IAP for review and it was rejected. The message said they want a new binary to test against. I have uploaded a new binary. There's a yellow banner on the IAP page which says "Fix the marked items and submit it again." There are no marked items and there is no button to resubmit it. I have submitted two cases with Apple about this. The first response was information about how to resubmit an app for re-review, not an IAP. The second case asked me for things like steps to reproduce and was browser version I'm using. I'm hoping someone on the forums can be more helpful. How do I resubmit an IAP for review? Thanks, Russ
1
0
795
Apr ’22
Unexplained crash started with iOS 14.5
Hi all, I've had a pretty stable app built with SwiftUI since iOS 13, but recently there's been a marked uptick in crashes since iOS 14.5 came out. I don't have much to go on other than crash reports which look like what's pasted below. I haven't been able to reproduce the issue myself, but I'm seeing it reported in the crash reports in the Organizer in Xcode. Can anyone point me in a direction to look? I'm kind of lost on this one. Thanks, Russ 0   CoreFoundation                      0x18259e754 __exceptionPreprocess + 220 (NSException.m:199) 1   libobjc.A.dylib                     0x1970657a8 objc_exception_throw + 60 (objc-exception.mm:565) 2   CoreFoundation                      0x1824a03f8 +[NSException raise:format:arguments:] + 100 (NSException.m:146) 3   Foundation                          0x183874714 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 132 (NSException.m:231) 4   UIKitCore                           0x1851842fc -[UITableView _Bug_Detected_In_Client_Of_UITableView_Invalid_Number_Of_Rows_In_Section:] + 132 (UITableView.m:2471) 5   UIKitCore                           0x185183c0c -[UITableView _endCellAnimationsWithContext:] + 11060 (UITableView.m:2412) 6   UIKitCore                           0x18519bba8 -[UITableView endUpdatesWithContext:] + 128 (UITableView.m:7759) 7   UIKitCore                           0x18519bd98 -[UITableView _performBatchUpdates:withContext:completion:] + 292 (UITableView.m:7785) 8   UIKitCore                           0x18519bed8 -[UITableView performBatchUpdates:completion:] + 120 (UITableView.m:7796)
0
0
606
Jun ’21
Game Center - Leaderboard Per Game?
Is it possible to have one leaderboard per instance of a game? I'm looking into how to add score challenges to my iOS game. My game starts with a random seed, so each individual gets a new game. I'd like people to be able to share a game with someone else and ask them to try to beat their score. I'm thinking I'd generate a GKScoreChallenge which would include the seed (although I can't tell if GKScoreChallenge has been deprecated by Apple now), and then use a seed-specific leaderboard to track everyone that that person sent the challenge to.I understand that you can create leaderboards manually, and according to Apple's last-updated-in-2016 docs you can have a max of 100 leaderboards. Does this mean 100 leaderboard associated with your app, or 100 "kinds" of leaderboards? Can I create leaderboards on the fly to support this type of challenge tracking?Would love the feedback of the community. And if I'm going down the wrong path here please let me know. Total n00b when it comes to Game Center.Thanks
0
0
470
Mar ’20
SKReceiptRefreshRequest, receipt verification, and Family Sharing
Hi all,I am issuing an SKReceiptRefreshRequest to check if someone has already bought a specific version of my app. I'm looking at original_application_version in the response. This works great if the person who's logged in to the App Store is the original buyer, however if the request comes from someone using Family Sharing no receipt is found. Is there a way for a family member who isn't the original buyer, but is part of Family Sharing, to have an SKReceiptRefreshRequest return the original buyer's receipt so I can check original_application_version and take some action?Thanks
0
0
517
Mar ’20
Guidance on implementing game sharing
Hi all,I'm looking for guidance on how to implement sharing of games. I have a little single-player game that I've developed, and I'd like to add the ability for someone to share their game with another person. The basic flow might be that a person plays a game and gets to a certain level in a certain amount of time, then shares the game with someone else, seeing if they can beat their time to get to that level. I can envision doing this in a couple different way but I'd love some guidance from the community on which way to go.Option 1: Game Center. Seems like Game Center has APIs which would allow for this. Is Game Center still going strong? Being phased out in favor of Arcade? (Orthoganal to Arcade?). Are their any drawbacks to Game Center that folks run across? Do game developers find that their users resist/embrace using Game Center?Option 2: Custom URL Schema: I can define the starting parameters to my game in a handful of settings, which could be expressed in URL parameters. I could imaging creating a custom URL scheme which would allow people to email/message a link to each other, and thus allow game sharing. Is that a decent way to go?Option 3: Facebook or another service. This is all new to me, so I'm sure what's out there.Anyway, I'd love some general guidance on what road to start down on.Thanks!
2
0
633
Feb ’20
How do you make a button respond to an external keyboard key press?
I've got a set of buttons within a SwiftUI View which represent various letters of the alphabet. How can I make the buttons or the view accept external keyboard input, say from an iPad Pro's keyboard, so that instead of having to touch the screen a user with a keyboard can press a key? There's plenty of docs on this for the non-SwiftUI world, but I'm specifically wondering what's the recommended way of doing this in SwiftUI?Thanks!
5
0
2.7k
Feb ’20