Hi,
I am using StoreKit2 for managing subscriptions and while testing it works fine until the point when the subscription needs to auto-renew.
When using StoreKit Testing Configuration and running the app through Xcode the auto-renew process works fine.
On the other hand, when I disable StoreKit Testing Configuration and I use Sandbox environment (again through Xcode) then after my first period expires (1 month aka. 5 minutes) I keep getting
Product.SubscriptionInfo.RenewalInfo.ExpirationReason.autoRenewDisabled
This is a code block I use for loading latest subscription data
// Product is StoreKit.Product
for product in products {
do {
let statuses = try await product.subscription?.status
guard let statuses = statuses else { continue }
for status in statuses {
let statusRenewalInfo = try checkVerified(status.renewalInfo)
let statusTransaction = try checkVerified(status.transaction)
guard let expirationDate = statusTransaction.expirationDate else {
continue
}
// Here I am getting "autoRenewDisabled" status.
if expirationDate < Date() {
print("*** expiration reason: \(statusRenewalInfo.expirationReason?.description)")
}
}
}
}
StoreKit2 (aka. Transaction API) is fantastic because of it's async-await syntax but I experienced a lot of problems with it such as this one and the one where it doesn't refresh subscriptions history properly so any advice would be helpful.