ChrisNZL / Tallowmere2

Changelog, issue tracker, and development knowledge for Tallowmere 2.
https://tallowmere2.com
13 stars 0 forks source link

MobileStore.ValidateReceipt: Overflow log crashes x2 #1099

Closed ChrisNZL closed 1 year ago

ChrisNZL commented 1 year ago

Auto report, iOS, 0.3.6c, feedback IDs 20221006-QTXFJ, 20221012-WYP6X

Overflow Prevention system initiated a Force Quit due to repeated log message(s):

4:23:34, Frame 45739, LOG »  Action_SplashBox_ShowPurchaseUI.ExecuteAction: Showing purchase UI...
4:23:34, Frame 45739, LOG »  GameState_UsingNativePurchaseUI: Added to stack.
4:23:35, Frame 45814, LOG »  MobileStore.BeginPurchaseFlow: Purchasing product... product.id: SupporterPack_Core
4:23:45, Frame 45968, LOG »  MobileStore.ProcessPurchase: Processing purchase...

4:23:45, Frame 45968, LOG »  totalPurchases: 0
totalRefunds (and/or cancellations): 0
purchaseIsValidAndCurrent: False

4:23:45, Frame 45968, WARNING »  WARNING: MobileStore.ValidateReceipt: Received receipts, but no matching productID was found.
[[[ ^ REPEATING MESSAGE... ]]]

[[[ ^ REPEATING MESSAGE... ]]]

4:23:47, Frame 46117, LOG »  totalPurchases: 0
totalRefunds (and/or cancellations): 0
purchaseIsValidAndCurrent: False

>>>>> OVERFLOW PREVENTION: REPEATED MESSAGE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Tallowmere2.MobileStore:ValidateReceiptAndEnsurePurchaseIsCurrent(Product)
Tallowmere2.Platform_CloudOnce:get_UserIsCoreSupporter()
Tallowmere2.CanvasMenu:Update()

Tasks:

ChrisNZL commented 1 year ago

Additional similar crash report on iOS, but for a different error.

Feedback ID: 0.3.6c_20221012-NCGWD

WARNING: MobileStore.ValidateReceipt: Receipt is invalid. IAPSecurityException: UnityEngine.Purchasing.Security.GenericValidationException: Cannot validate due to unhandled exception. (System.ArgumentException: Failed to load data.

10:50:28, Frame 8396, LOG »  Action_SplashBox_ShowPurchaseUI.ExecuteAction: Showing purchase UI...
10:50:28, Frame 8396, LOG »  GameState_UsingNativePurchaseUI: Added to stack.
10:50:29, Frame 8471, LOG »  MobileStore.BeginPurchaseFlow: Purchasing product... product.id: SupporterPack_Core
10:50:29, Frame 8472, LOG »  MobileStore.ProcessPurchase: Processing purchase...

10:50:29, Frame 8472, WARNING »  WARNING: MobileStore.ValidateReceipt: Receipt is invalid. IAPSecurityException: UnityEngine.Purchasing.Security.GenericValidationException: Cannot validate due to unhandled exception. (System.ArgumentException: Failed to load data.
  at LipingShare.LCLib.Asn1Processor.Asn1Parser.LoadData (System.IO.Stream stream) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Purchasing.Security.AppleReceiptParser.Parse (System.Byte[] receiptData, UnityEngine.Purchasing.Security.PKCS7& receipt) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Purchasing.Security.AppleValidator.Validate (System.Byte[] receiptData) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Purchasing.Security.CrossPlatformValidator.Validate (System.String unityIAPReceipt) [0x00000] in <00000000000000000000000000000000>:0 
  at Tallowmere2.MobileStore.ValidateReceiptAndEnsurePurchaseIsCurrent (UnityEngine.Purchasing.Product unityProduct) [0x00000] in <00000000000000000000000000000000>:0 
  at Tallowmere2.MobileStore.ProcessPurchase (UnityEngine.Purchasing.PurchaseEventArgs unityPurchaseEventArgs) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Purchasing.PurchasingManager.ProcessPurchaseIfNew (UnityEngine.Purchasing.Product product) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Purchasing.Extension.UnityUtil.Update () [0x00000] in <00000000000000000000000000000000>:0 )
  at UnityEngine.Purchasing.Security.CrossPlatformValidator.Validate (System.String unityIAPReceipt) [0x00000] in <00000000000000000000000000000000>:0 
  at Tallowmere2.MobileStore.ValidateReceiptAndEnsurePurchaseIsCurrent (UnityEngine.Purchasing.Product unityProduct) [0x00000] in <00000000000000000000000000000000>:0 
  at Tallowmere2.MobileStore.ProcessPurchase (UnityEngine.Purchasing.PurchaseEventArgs unityPurchaseEventArgs) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Purchasing.PurchasingManager.ProcessPurchaseIfNew (UnityEngine.Purchasing.Product product) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Purchasing.Extension.UnityUtil.Update () [0x00000] in <00000000000000000000000000000000>:0 

[[[ ^ REPEATING MESSAGE... ]]]
10:51:02, Frame 9935, WARNING »  WARNING: MobileStore.ValidateReceipt: Receipt is invalid. IAPSecurityException: UnityEngine.Purchasing.Security.GenericValidationException: Cannot validate due to unhandled exception. (System.ArgumentException: Failed to load data.
  at LipingShare.LCLib.Asn1Processor.Asn1Parser.LoadData (System.IO.Stream stream) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Purchasing.Security.AppleReceiptParser.Parse (System.Byte[] receiptData, UnityEngine.Purchasing.Security.PKCS7& receipt) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Purchasing.Security.AppleValidator.Validate (System.Byte[] receiptData) [0x00000] in <00000000000000000000000000000000>:0 
  at UnityEngine.Purchasing.Security.CrossPlatformValidator.Validate (System.String unityIAPReceipt) [0x00000] in <00000000000000000000000000000000>:0 
  at Tallowmere2.MobileStore.ValidateReceiptAndEnsurePurchaseIsCurrent (UnityEngine.Purchasing.Product unityProduct) [0x00000] in <00000000000000000000000000000000>:0 
  at Tallowmere2.Platform_CloudOnce.get_UserIsCoreSupporter () [0x00000] in <00000000000000000000000000000000>:0 
  at Tallowmere2.CanvasMenu.Update () [0x00000] in <00000000000000000000000000000000>:0 )
  at UnityEngine.Purchasing.Security.CrossPlatformValidator.Validate (System.String unityIAPReceipt) [0x00000] in <00000000000000000000000000000000>:0 
  at Tallowmere2.MobileStore.ValidateReceiptAndEnsurePurchaseIsCurrent (UnityEngine.Purchasing.Product unityProduct) [0x00000] in <00000000000000000000000000000000>:0 
  at Tallowmere2.Platform_CloudOnce.get_UserIsCoreSupporter () [0x00000] in <00000000000000000000000000000000>:0 
  at Tallowmere2.CanvasMenu.Update () [0x00000] in <00000000000000000000000000000000>:0 

>>>>> OVERFLOW PREVENTION: REPEATED MESSAGE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Tallowmere2.MobileStore:ValidateReceiptAndEnsurePurchaseIsCurrent(Product)
Tallowmere2.Platform_CloudOnce:get_UserIsCoreSupporter()
Tallowmere2.CanvasMenu:Update()

OUTPUT LOGGER: Previous log event has happened 150 times in a row. Forcing hard quit...
ChrisNZL commented 1 year ago

Seems that sometimes, unityProduct.hasReceipt is true even if user has not purchased the product before.

ChrisNZL commented 1 year ago

0.3.7: