Confirming this observation: Safari has a significantly lower frame rate when animating a three.js scene than Chrome and Firefox - lots of stuttering. Observed with:
https://app.photoephemeris.com/sphere with 3D terrain required (requires subscription - happy to provide access, if helpful)
Safari Version 14.1.1 (15611.2.7.1.6, 15611), Chrome Version 91.0.4472.114 (Official Build) (x86_64), Firefox Version 91.0.4472.114 (Official Build) (x86_64)
MacBook Pro (15-inch, 2016), 2.7 GHz Quad-Core Intel Core i7, Radeon Pro 460 4 GB Intel HD Graphics 530 1536 MB
Catalina 10.15.7 (19H1217)
The difference shows up when I set the Terrain quality to medium or high (512x512 or 1024x1024 subdivision of a texture + displacement + alpha mapped three.js plane). No noticeable differences when set to low (256 x 256).
Post
Replies
Boosts
Views
Activity
@nbe I think appAccountToken handles this use case - it's a UUID you can pass in at the time of purchase into StoreKit2, which is then included with each v2 App Store Server Notification you receive. It's intended to address exactly the problem of correlating purchases with user accounts. See https://developer.apple.com/videos/play/wwdc2021/10114/
@oscaretu - very useful, thank you. I'd love to know if the 180 days behaviour is documented somewhere also. Can't find any other reference to this online (although it makes sense, as it seems 180 days is the max time to refund a credit card payment, per other search results I'm seeing for other payment processors).
@krystian_laubach "does it mean that original_transaction_id is globally unique and we can use it to identify user?". I don't think so - the same user may have several IAPs (depending on your product structure), and a resubscribe >180 days would apparently generate a new INITIAL_BUY (per @oscaretu's comments above). appAccountToken may be what you need (if you're able to use StoreKit 2).
Interesting that you see notifications coming quickly from Apple - so far in the sandbox, I've found them to be very laggy (several minutes after purchase), which means you can't really rely on them to entitle the user's account server side in a timely fashion.
The scenario in which I'm seeing appAccountToken go missing is when you resubscribe from Settings>App Store>Sandbox Account>Manage rather than from the app itself. I'm not clear why the (cancelled + expired) Subscription even keeps showing up there at all. Is this even possible in Production? (Also, "Clear Purchase History" on the sandbox testing account doesn't remove the cancelled + expired sub from this page - at least not yet, in my testing.)
When I try this and take the device out of airplane mode, I find Xcode loses connectivity to the device and I'm back to square one. Not sure if that's 100% of the time or just intermittent. This issue is a complete PITA.