Post

Replies

Boosts

Views

Activity

Reply to When does AccountNotFound get returned from "Get All Subscription Statuses"?
Thanks for your reply! I’m interpreting what you’ve said to mean “the user’s App Store account has been deleted.” None in particular seemed suspicious, I was just a little surprised at the incidence rate for this error code. Among our receipts is slightly more than 1/1000, which seems a little high to me. But frankly the major confusion was I had 21010 down as “unauthorized” rather than “account not found” and I thought the difference in error code was strange. Thanks @App Store Commerce Engineer
Topic: App & System Services SubTopic: StoreKit Tags:
Aug ’23
Reply to TN3151: Choosing the right networking API
@eskimo Thanks for the detailed answer! I feel like I understand the tradeoffs now. I appreciate that Apple has internal style to stick to & whatnot, but in my personal opinion this bullet point would much enhance the technote: URLSession is very much focused on HTTP, and WebSocket isn’t an HTTP-like protocol. While it uses HTTP under the covers, the actual WebSocket protocol is a reliably bidirectional connection with message framing. Those semantics are a much better match for NWConnection than URLSession. That really cleared up for me why it was a generally good starting point, rather than "start with URLSession & use NWConnection when you need something special". One last bit if you don’t mind — is there official documentation/tutorial/walkthroughs/etc. that explain making a WebSocket connection with NWConnection? It looks a bit more complicated to setup than URLSession & is definitely less familiar to me.
Jul ’23
Reply to TN3151: Choosing the right networking API
@Jason This Technote is awesome. Is there any explanation of this recommendation? Unless you have a specific reason to use URLSession, use Network framework for new WebSocket code. That seems like the opposite of what I would expect, so I'm curious to understand why we should prefer Network framework over URLSession for websockets.
Jul ’23
Reply to App Store Server Notification sends old transactions
@App Store Commerce Engineer Just to confirm - is the signedRenewalInfo always the latest renewal info for that originalTransactionId ? (as of the notification's signed date; I understand notifications can come out of order) I'm not sure what else it could be, but since I fundamentally misunderstood signedTransactionInfo it seems worth checking!
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Feb ’25
Reply to How do I open my app's section of Notification settings in Catalyst?
Yeah, this is very annoying (filed FB12010677 about it). We use URL(string: "x-apple.systempreferences:com.apple.preference.notifications")! which gets you pretty close — the user still has to scroll down and select your app though.
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Dec ’23
Reply to When does AccountNotFound get returned from "Get All Subscription Statuses"?
Thanks for your reply! I’m interpreting what you’ve said to mean “the user’s App Store account has been deleted.” None in particular seemed suspicious, I was just a little surprised at the incidence rate for this error code. Among our receipts is slightly more than 1/1000, which seems a little high to me. But frankly the major confusion was I had 21010 down as “unauthorized” rather than “account not found” and I thought the difference in error code was strange. Thanks @App Store Commerce Engineer
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Aug ’23
Reply to TN3151: Choosing the right networking API
@eskimo Thanks for the detailed answer! I feel like I understand the tradeoffs now. I appreciate that Apple has internal style to stick to & whatnot, but in my personal opinion this bullet point would much enhance the technote: URLSession is very much focused on HTTP, and WebSocket isn’t an HTTP-like protocol. While it uses HTTP under the covers, the actual WebSocket protocol is a reliably bidirectional connection with message framing. Those semantics are a much better match for NWConnection than URLSession. That really cleared up for me why it was a generally good starting point, rather than "start with URLSession & use NWConnection when you need something special". One last bit if you don’t mind — is there official documentation/tutorial/walkthroughs/etc. that explain making a WebSocket connection with NWConnection? It looks a bit more complicated to setup than URLSession & is definitely less familiar to me.
Replies
Boosts
Views
Activity
Jul ’23
Reply to TN3151: Choosing the right networking API
@Jason This Technote is awesome. Is there any explanation of this recommendation? Unless you have a specific reason to use URLSession, use Network framework for new WebSocket code. That seems like the opposite of what I would expect, so I'm curious to understand why we should prefer Network framework over URLSession for websockets.
Replies
Boosts
Views
Activity
Jul ’23
Reply to Xcode 13 Cloud Signing - certificate private key not installed
Note: I have also attempted this with Xcode 13.1 which yielded no difference.
Topic: Code Signing SubTopic: General Tags:
Replies
Boosts
Views
Activity
Dec ’21
Reply to Cancelling a subscription inside an app?
There is now API for showing an Apple-managed UI on your UIWindowScene for managing subscriptions (https://developer.apple.com/documentation/storekit/appstore/3803198-showmanagesubscriptions) but I don't think you can display your own UI for cancelling or programmatically cancel without interaction.
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Jun ’21