I'm testing auto-renewable subscriptions with a local .storekit configuration in Xcode 27.2 (27B52). With the same app and configuration on iPhone 17 simulators, I get different results on iOS 26.2 (23C54) and iOS 27.2 (24B8117).
- Set SKTestSession.timeRate to .oneRenewalEveryThirtySeconds, then purchase an auto-renewable subscription in the app with StoreKit 2.
- Wait for the original period to expire and the first automatic renewal to appear. Refund that renewal using SKTestSession.refundTransaction(identifier:) and wait for the app to receive the revocation.
- While the app is still running, purchase the same product again and inspect the verified transaction returned directly by Product.purchase().
Both runtimes return .success with a verified transaction. On iOS 26.2, the repurchase returns a new transaction ID with revocationDate == nil, and Transaction.currentEntitlements contains it. On iOS 27.2, the result has the same ID, purchaseDate, and non-nil revocationDate as the refunded renewal. The current entitlement check yields no verified unrevoked transaction. This reproduced for both a monthly and a three-month subscription. The monthly case also reproduced when calling Product.purchase() without an appAccountToken option.
Is this a known issue in StoreKit Testing on iOS 27.2 Simulator? Is there a supported way to test the repurchase path while preserving the refunded transaction in the test history?