Refactors the purchasing to use an InternalPurchaseController. This is responsible for figuring out whether to use a developer-provided purchase controller, or using its own productPurchaser when purchasing/restoring. Minimised the use of hasPurchaseController throughout the SDK by calling things directly in the purchase controller. Setting of the subscription status also happens inside the purchase controller.
Fixes issue where verification of transactions was happening after the finishing of transactions when not using a PurchaseController.
Stops exposing ASN1Decoder publicly.
Checklist
[x] All unit and UI tests pass. Demo project builds and runs.
[x] I added tests, an experiment, or detailed why my change isn't tested.
[x] I added an entry to the CHANGELOG.md for any breaking changes, enhancements, or bug fixes.
[x] I have run swiftlint in the main directory and fixed any issues.
[ ] I have updated the SDK documentation as well as the online docs.
Changes in this pull request
InternalPurchaseController
. This is responsible for figuring out whether to use a developer-provided purchase controller, or using its ownproductPurchaser
when purchasing/restoring. Minimised the use ofhasPurchaseController
throughout the SDK by calling things directly in the purchase controller. Setting of the subscription status also happens inside the purchase controller.PurchaseController
.Checklist
CHANGELOG.md
for any breaking changes, enhancements, or bug fixes.swiftlint
in the main directory and fixed any issues.