How do I test REAL purchases in my app without releasing it to the public? I need to finish testing and debugging the subscription logic in the app, but I can't get out of the sandbox.
I'm using Ionic 4 with Purchases Cordova plugin from RevenueCat.
Sandbox testing has went smoothly. I can purchase the items and restore them as expected after deleting the app. I can't tell how repeated purchases works though. I want to test how this new app version reacts to a legacy user and be able to restore previous purchases.
I want to be able to see what is returned from the store with a real production receipt. Apple keeps dumping me into the sandbox no matter what I try. While building direct to device and as an App Store Connect Test Flight user, the app keeps doing a sandbox or beta testing purchase.
I'm trying to finish up the logic for the app, but I'm not getting back the data I expect for a production user.
test case:
We offer 2 non-renewal subscriptions: a 1-month and a 1-year. User bought a 1-month originally in Feb 2016, then repeatedly bought a 1-year since. I expect to see 1 1-month purchase and 5 1-year purchases in the history.
current results:
getPurchaserInfo method returns an object. Repeated sandbox purchases just keep updating the date for that subscription type, instead of adding to the object or using an array.
"allPurchaseDates": {
"1YearSub": "2020-04-08T21:45:03Z",
"30DaySub": "2020-04-07T17:00:44Z"
},
expectation:
getPurchaserInfo method returns an array of complete history, whether in sandbox or production.
"allPurchaseDates": [
{"1YearSub": "2020-04-10T21:45:03Z"},
{"1YearSub": "2019-04-12T21:45:03Z"},
{"1YearSub": "2018-04-14T21:45:03Z"},
{"1YearSub": "2017-04-16T21:45:03Z"},
{"1YearSub": "2016-04-18T21:45:03Z"},
{"30DaySub": "2016-03-19T17:00:44Z"}
],
Testing with legit AppleId user on real devices: iOS 13.4, 13.3.1, 13.4.1
"@ionic-native/purchases": "^5.23.0"
"cordova-plugin-purchases": "^1.1.0"
Ionic CLI : 5.4.2 (/usr/local/lib/node_modules/ionic)
Ionic Framework : @ionic/angular 4.11.8
Cordova CLI : 8.1.2 (cordova-lib@8.1.1)
Cordova Platforms : ios 5.0.1
NodeJS : v10.16.3 (/usr/local/bin/node)
npm : 6.11.3
OS : macOS Catalina
Xcode : Xcode 11.4 Build version 11E146
Thanks
You can't test production receipts unless you release the app. There's no way around that.
If you already have an app in the store and don't want people to use the in app purchases yet, I would suggest using feature flags that only enable in app purchases to your particular user.
If you don't have an app yet, I would suggest you doing a soft launch only in your country, you will most likely not get any downloads besides yours if you don't advertise it somehow.