Tthanks that's the info I was after!
Post
Replies
Boosts
Views
Activity
Thanks Rowlands - its helpful to know that I'm not the only one tripping up on this. I think the underlying problem here is that the expected behaviour isn't laid out clearly enough in the documentation. The sandbox adds a lot of unique quirks to the process, and coming up with a satisfactory QA test plan is very difficult without that clarity.
I do see your point about this being an edge case, but that's not exactly what I'm worried about. I've been all over the documentation and WWDC videos and I haven't been able to find clear information anywhere about the timing of when and what triggers these transactions to actually arrive in updatedTransactions. Without that information, I'm left to guess about what a successful test looks like.I think you may have just touched on it, but I'd like to be sure - are you saying that these transactions are normally added to the queue when the app enters the foreground, but it is normal that nothing would happen if the app is in the foreground when the subscription period expires? Does it normally require a full restart, or is it sufficient to drop out to the home screen and then flip back to the app?
So the problem is that's not happening when I think it should. updatedTransactions is not getting called. If the app is running and the foreground, the expiry time passes and nothing happens.It seems that the renewal does happen on apples end, because I am able to use restore purchases to get the transaction, but if the app is running and in the foreground, I don't get the transaction. Sometimes it arrives on startup if I restart the app, sometimes it doesn't. When exactly should the renewal transaction arrive on the SKPaymentQueue?
I have found that I had to implement a retry loop on my server because of connection problems that appear to originate on Apple's end. 30% sounds about right for the failure rate that I have been seeing. I have sometimes had to retry the same call to verifyReceipt up to 4 times before it would successfully return.
Ok I've double checked those things and I had them all covered.My remaining question is, should I be expecting the transactions to just appear in SKPaymentQueue when Apple processes the renewal or do I need to schedule as task of some sort to check for renewals?I'm aware of server to server notifications and those are on my to do list, but I'm looking for clarity on the expected on-device behaviour.
I just ran into this problem and after a bit of experimentation, I was able to get the file to import properly by moving it to a different directory before dragging it into the simulator. In my case, I was trying to drag and drop it into the simulator from my ~/Downloads directory and that wasn't working, but when I moved it to ~/ and then dragged it into the simulator, it worked fine.