Sorry can you confirm is this workaround can fix it for now?
@available(iOS, introduced: 15.7, obsoleted: 16.0)
@objc extension SKStoreProductViewController {
func sceneDisconnected(_ arg: AnyObject) {}
func appWillTerminate() {}
}
https://stackoverflow.com/a/73796906/92153
Thanks
Post
Replies
Boosts
Views
Activity
Hello Apple,
So what is the outcome of this issue, please? I'm not able to accept the terms as the OP described, and hence can't test interrupted IAP purchases.
Please be so kind and advice,
Thank you,
Hi Matt,
The loadAllFromPreferences returns only one manager in my case. I load different configurations for different VPN servers in the same manager. Hence I'm not sure what you mean by matching it. I have handled the observer in the MainViewController, like this:
override func viewDidLoad() {
loadFromPreferences()
NotificationCenter.default.addObserver(self, selector: #selector(vpnStatusDidChange(_:)), name: NSNotification.Name.NEVPNStatusDidChange, object: nil)
}
func loadFromPreferences() {
vpnManager.loadFromPreferences { (error) in
}
}
This is how I'm listening to changes of NEVPNStatusDidChange. But this only works on the builtin IKEv2. If I use third party VPN frameworks that utilises the NetworkExtension framework, then it doesn't behave correctly.
Do you think I should be doing the observer differently? Thanks
@Boaz F.
@Eskimo
We have exact same problem. We support iOS 12+ but displayMessage(_:completionHandler:) is no longer working on iOS 15.
The suggestion by Xcode to replace displayMessage(_:completionHandler:) with UILocalNotification is wrong. UILocalNotification was already deprecated in iOS 10.
Is this a bug? What should we do? We need a way to notify the user from the NetworkExtension, please.
Many thanks
Hello,
I have been trying to resolve this issue for days and luckily came across this post here. This is indeed a bug and should be fixed. This is usually an indication of a memory leak, when NEVPNStatusDidChange still get fired by previous managers that have been reconfigured through loadAllFromPreferences().
Our users are complaining the the app slows down after some time and they have to kill the app from memory. We have observed the logs and there are hundreds of notifications accumulating depending on how many times they the user has connected and disconnected from various vpn servers.
Has anyone raised this bug yet? Or should I do it?
Many Thanks,
I have the same issue on Catalina. Have you found a solution to this, please?
Hi John,Sorry it's me again. I have found this post here https://forums.developer.apple.com/thread/124225#399478It is exactly what I'm experiencing. When I create a new user and run the app binary there, it works perfectly fine. It accepts my test user credentials.But the same test user/credential are rejected when I use my main account. I think the reason could be that I previously may have used my real Apple ID account to log into the store instead of the sandbox account.This is where you have mentioned, "Do NOT use a real Apple ID.". How can this be reverted, please? Other than deleting the whole MacBook and reinstalling it. lolThank you,Houman
Greg, I'm seeing the exact same issue under Catalina. When I create a new user it works but not with the existing user. Whatever this is, something has been written to my user environment/keychain. But I can't find it.How did you solve this, please?Thanks,Houman
Hi John,Thank you for coming back to me. Now I understand what you mean.I have changed my code to exit with 173 when the receipt can't be generated.internal func loadReceipt() -> Data? {
guard let url = Bundle.main.appStoreReceiptURL else {
return nil
}
do {
let data = try Data(contentsOf: url)
return data
} catch {
SwiftyBeaver.warning("Error loading receipt data: \(error.localizedDescription)")
exit(173)
}
}Now the app exists and the prompt appears. Thank you very much.The issue I'm facing now is that none of my freshly created sandbox users work. I can't login with any of them, even though the password is 100% correct. I have googled and it seems several people have this issue since Catalina release. Have you experienced that before?I know that sandbox user should never login properly into production AppStore as otherwise those accounts get burnt. So what gives that I can't login with them? I have a suspicion that the prompt is from production, as I don't see any [sandbox] flag anywhere on the promt?
Hi John,This is the first time we are converting our iOS app to Mac. Sorry if some questions don't make sense.The validation happens on our server. The moment the user attempts to purchase something it fails and that popup appears. But to answer your question, no our server doesn't return a 173 HTTP code. Why does Mac need this? Because the iOS implementation didn't need that either.09:02:23.038 💚 DEBUG AppDelegate.handlePurchasingState():199 - User is attempting to purchase product id: com.xx.xx.mac.standard.weekly09:05:04.304 💚 DEBUG AppDelegate.handleFailedState():241 - Purchase failed for product id: com.xx.xx.mac.standard.weeklyOn a separate note, I also can't generate the receipt to send it as Base64 to my server:09:01:46.682 💛 WARNING SubscriptionService.loadReceipt():122 - Error loading receipt data: The file “receipt” couldn’t be opened because there is no such file.internal func loadReceipt() -> Data? {
guard let url = Bundle.main.appStoreReceiptURL else {
return nil
}
do {
let data = try Data(contentsOf: url)
return data
} catch {
SwiftyBeaver.warning("Error loading receipt data: \(error.localizedDescription)")
return nil
}
}I think the main issue is that I'm not able to get the prompt to enter the sandbox user.Many Thanks,Houman