Hi,
We are seeing a reproducible issue when presenting SKStoreProductViewController in our production app context.
For a quick summary, presenting and dismissing SKStoreProductViewController on iOS 15/16 can leave our app in a visually corrupted state (black/empty/orphaned-looking UI).
On iOS 18/26 (presumably every iOS version in between), the same flow works correctly.
What we verified
dealloc is not called for our affected view controllers.
During StoreKit lifecycle, VC hierarchy is logically valid: window.rootViewController remains stable. presented chain remains expected.
SKStoreProductViewController becomes top-presented and dismisses normally as logged in the delegate.
In the xcode view hieararchy, only the UITransitionView and UIDropShadowView are present. Our app content VCs are no longer attached to the visible hierarchy.
This is the code we used:
SKStoreProductViewController *storeVC = [SKStoreProductViewController new];
storeVC.delegate = self;
[storeVC loadProductWithParameters:@{ SKStoreProductParameterITunesItemIdentifier: @(APP_ID) }
completionBlock:^(BOOL result, NSError *error) {
if (result) {
[presenter presentViewController:storeVC animated:YES completion:nil];
}
}];
-- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
[viewController dismissViewControllerAnimated:YES completion:nil];
}
We also observed that presenting SKStoreProductViewController appears to trigger memory-intensive behavior in this runtime context. Shortly after presentation, UIApplicationDidReceiveMemoryWarningNotification is frequently emitted on affected OS versions. However, even when this happens, our VC ownership remains intact (dealloc not called, root/presented chain still valid), while the visible UI and View Hiearchy is left with just the UIWindowScene.
Moreover, to verify and confirm that this is an OS issue and not a hardware issue. We also tried using 2 iPhone 12 devices, one running on iOS 16 and one on iOS 18. The iOS 18 one works flawlessly but the iOS 16 device produces the same behaviour
Is this a known StoreKit/UIKit issue on iOS 15/16/17?
Any recommended mitigation or perhaps alternatives to using SKStoreProductViewController on these OS versions?
Thanks.
0
0
18