Post

Replies

Boosts

Views

Activity

How to handle an interrupted in-app purchase with specific data
I want to set up a consumable in-app purchase that buys a virtual ticket for a specific event in my app. When they buy the ticket I will send a message to my server to add their userID for a specific event ID in the database. There will be many events that a user could buy a consumable ticket for. I am aware of the necessity for a SKPaymentTransactionObserver subclass which handles transactions. However, if something goes wrong (they background the app, battery dies, loss of internet connection) the SKPaymentTransactionObserver will be sent the transaction until I call -finishTransaction. How can I know what event ID they've purchased the consumable for in this instance? Is there a payload that I can attach to a transaction? Thanks!
0
0
459
Feb ’21
Unable to present. Please file a bug.
This has been posted before on here but none of the answers work. I have 6 navigation links within a navigation view but on some of them it randomly pops back to the root and says "Unable to present. Please file a bug." in the console. Here is my code for my NavigationView: VStack { NavigationLink( destination: EventSetupQueueSelectionView() .background(Color.neutral(.oneHundred)) .navigationBarTitle("") .navigationBarHidden(true) .navigationBarBackButtonHidden(true) , tag: 1, selection: $modelController.currentPage, label: { EmptyView() } ) NavigationLink( destination: EventSetupQueueDetailsView() .background(Color.neutral(.oneHundred)) .navigationBarTitle("") .navigationBarHidden(true) .navigationBarBackButtonHidden(true) , tag: 2, selection: $modelController.currentPage, label: { EmptyView() } ) NavigationLink( destination: EventSetupSigningView() .background(Color.neutral(.oneHundred)) .navigationBarTitle("") .navigationBarHidden(true) .navigationBarBackButtonHidden(true) , tag: 3, selection: $modelController.currentPage, label: { EmptyView() } ) NavigationLink( destination: EventSetupRetailView() .background(Color.neutral(.oneHundred)) .navigationBarTitle("") .navigationBarHidden(true) .navigationBarBackButtonHidden(true) , tag: 4, selection: $modelController.currentPage, label: { EmptyView() } ) NavigationLink( destination: EventSetupPrivacyView() .background(Color.neutral(.oneHundred)) .navigationBarTitle("") .navigationBarHidden(true) .navigationBarBackButtonHidden(true) , tag: 5, selection: $modelController.currentPage, label: { EmptyView() } ) NavigationLink( destination: EventSetupSummaryView() .background(Color.neutral(.oneHundred)) .navigationBarTitle("") .navigationBarHidden(true) .navigationBarBackButtonHidden(true) , tag: 6, selection: $modelController.currentPage, label: { EmptyView() } ) EventSetupDetailView() .background(Color.neutral(.oneHundred)) .navigationBarTitle("") .navigationBarHidden(true) .navigationBarBackButtonHidden(true) } } The modelController.currentPage is changed via a separate button below the navigation view. I've removed that for simplicity. If I reduce the number of NavigationLinks, it works but this is not a solution. How can I fix this?
1
0
468
Aug ’21