j3k0 / cordova-plugin-purchase

In-App Purchase for Cordova on iOS, Android and Windows
https://purchase.cordova.fovea.cc
1.29k stars 529 forks source link

IAP freeze my APP #1521

Open konguele opened 3 months ago

konguele commented 3 months ago

Hello,

I am writing to report an issue I've found while integrating Cordova-plugin-purchase into my app.

Problem Description: Upon initiating an in-app purchase process, everything proceeds as expected until the finalization of the purchase. At this point, the purchase is successfully completed, and the desired quantity is appropriately added. However, immediately following this action, the application freezes, rendering it unresponsive.

Additional Information:

The app is developed using GDevelop, Cordova and targets iOS. The freeze occurs consistently after completing a purchase. No error messages or warnings are displayed prior to the freeze. The issue persists across multiple testing environments. Tested with version 13.8.0, 13.10.0 and 13.10.1

Here you can find all the log: Log TestApp.zip

Here part of the log:

oreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld'
00:42.006.054 Default Space Warhog (2737) com.apple.WebKit ProcessSuspension 0x10f1f1020 - [PID=2'738, throttler=0x10f018880] ProcessThrottler::Activity::Activity: Starting foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld' 00:42.006.095 Default Space Warhog (2737) com.apple.WebKit ProcessSuspension 0x10f1f10c0 - [PID=2'738, throttler=0x10f018880] ProcessThrottler::Activity::Activity: Starting foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld' 00:42.006.129 Default Space Warhog (2737) com.apple.WebKit ProcessSuspension 0x10f1f1160 - [PID=2'738, throttler=0x10f018880] ProcessThrottler::Activity::Activity: Starting foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld' 00:42.006.177 Error Space Warhog (2737) com.apple.WebKit IPC 0x10f060220 - Connection::dispatchIncomingMessages: IPC throttling was triggered (has 1'517 pending incoming messages, will only process 300 before yielding)
00:42.006.224 Error Space Warhog (2737) com.apple.WebKit IPC 0x10f060220 - Connection::dispatchIncomingMessages: first IPC message in queue is WebUserContentControllerProxy_DidPostMessage
00:42.006.430 Default Space Warhog (2737) com.apple.storekit Default [0cd6_SK1] Decoded product response () 00:42.006.518 Debug Space Warhog (2737) com.apple.storekit Default [0cd6_SK1] Finished receiving responses 00:42.006.571 Default Space Warhog (2737) com.apple.storekit Default [0cd6_SK1] Finished product request 00:42.008.345 Default Space Warhog (2737) com.apple.storekit Default [0cd6_SK1] Parsing 1 products in response
00:42.009.005 Default Space Warhog (2737) com.apple.storekit Default [0cd6_SK1] Returning 1 product(s) and 0 invalid identifier(s)
00:42.009.157 Default Space Warhog (2737) com.apple.UIKit BackgroundTask : Ending background task with UIBackgroundTaskIdentifier: 6
00:42.009.219 Default Space Warhog (2737) com.apple.UIKit BackgroundTask : Ending task with identifier 6 and description: , _expireHandler: <NSMallocBlock: 0x300412490>
00:42.009.586 Default Space Warhog (2737) com.apple.UIKit BackgroundTask : Decrementing reference count for assertion (used by background task with identifier 6: )
00:42.009.656 Default Space Warhog (2737) com.apple.UIKit BackgroundTask : Will invalidate assertion: <BKSProcessAssertion: 0x302909630> for task identifier: 6 00:42.009.700 Default Space Warhog (2737) com.apple.WebKit ProcessSuspension 0x10f1fce20 - [PID=2'738, throttler=0x10f018880] ProcessThrottler::Activity::Activity: Starting foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld' 00:42.009.718 Default Space Warhog (2737) com.apple.WebKit ProcessSuspension 0x10f1fcec0 - [PID=2'738, throttler=0x10f018880] ProcessThrottler::Activity::Activity: Starting foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld' 00:42.009.730 Default Space Warhog (2737) com.apple.WebKit ProcessSuspension 0x10f1fcf60 - [PID=2'738, throttler=0x10f018880] ProcessThrottler::Activity::Activity: Starting foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld'

j3k0 commented 2 months ago

Can you share some code? Is it possible that your code does some sort of action in the "approved", "verified" or "finished" event handlers (like refreshing the store) that would trigger an endless loop of native-side calls?

I see hundreds of simultaneous "Starting foreground activity" in the provided logs, until the point a limit is reached and the app apparently killed.

Could you test in a debug build, with store.verbosity set to LogLevel.DEBUG, connect Safari to see what calls the plugin makes.

konguele commented 2 months ago

Hello @j3k0 ,

I add some parts of the code from both the gdjs.evtsExtInAppPurchaseWatchItemEvent-func file and the code10 file (both JS).

if (typeof gdjs.evtsExt__InAppPurchase__WatchItemEvent !== "undefined") {
  gdjs.evtsExt__InAppPurchase__WatchItemEvent.registeredGdjsCallbacks.forEach(callback =>
    gdjs._unregisterCallback(callback)
  );
}

gdjs.evtsExt__InAppPurchase__WatchItemEvent = {};

gdjs.evtsExt__InAppPurchase__WatchItemEvent.userFunc0xbdd040 = function GDJSInlineCode(runtimeScene, eventsFunctionContext) {
"use strict";
if(!window.CdvPurchase || !window.CdvPurchase.store) return;
const store = window.CdvPurchase.store;

const eventName = eventsFunctionContext.getArgument("event");
const productId = eventsFunctionContext.getArgument("id");

const transactionCallback = (transaction) => {
    const products = transaction.products;
    // If the product being watched is in the list of products in the transaction, save into a variable.
    if (products.find(transactionProduct => transactionProduct.id === productId)) {
        const variable = runtimeScene.getVariables().get(eventsFunctionContext.getArgument("variableName"));
        variable.setBoolean(true);
    }
}

store.when().approved((transaction) => {
    // If we're watching this event, call the callback.
    if (eventName === 'approved') {
        transactionCallback(transaction);
    }
    // Automatically verify the transaction on approved.
    transaction.verify();
})

// Automatically finish a receipt when verified.
store.when().verified(receipt => receipt.finish())

store.when().finished((transaction) => {
    // If we're watching this event, call the callback.
    if (eventName === 'finished') {
        transactionCallback(transaction);
    }
    // Nothing left to do when finished.
})

};
gdjs.evtsExt__InAppPurchase__WatchItemEvent.eventsList0 = function(runtimeScene, eventsFunctionContext) {

{

gdjs.evtsExt__InAppPurchase__WatchItemEvent.userFunc0xbdd040(runtimeScene, typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined);

}

};

code10 JS file:

let isConditionTrue_0 = false;
{
{gdjs.evtsExt__InAppPurchase__WatchItemEvent.func(runtimeScene, "500monedas", "quinientos_paid", "approved", (typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined));
}{gdjs.evtsExt__InAppPurchase__WatchItemEvent.func(runtimeScene, "3000monedas", "tresmil_paid", "approved", (typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined));
}{gdjs.evtsExt__InAppPurchase__WatchItemEvent.func(runtimeScene, "7500monedas", "sietequinientos_paid", "approved", (typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined));
}{gdjs.evtsExt__InAppPurchase__WatchItemEvent.func(runtimeScene, "15000monedas", "quincemil_paid", "approved", (typeof eventsFunctionContext !== 'undefined' ? eventsFunctionContext : undefined));
}}

}

I also add a test app only with the In App Purchase function where the same error appears. test1.zip

The problem seems to be in the finished part. From what I see in debug mode, it generates an infinite loop or something similar because the same finished transaction appears many, many times.

Log-MyApp.zip

00:50.707.574 Default Space Warhog (3570) Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: receiptsUpdated: [{"className":"Receipt","transactions":[{"className":"Transaction","transactionId":"appstore.application","state":"finished","products":[{"id":"com.stilugames.jabaliespacial"}],"platform":"ios-appstore"},{"className":"Transaction","transactionId":"2000000519733187","state":"finished","products":[{"id":"500monedas"}],"platform":"ios-appstore","purchaseDate":"2024-02-08T11:10:55.000Z"}],"platform":"ios-appstore","nativeData":{"appStoreReceipt":"MIIYaAYJKoZIhvcNAQcCoIIYWTCCGFUCAQExDzANBglghkgBZQMEAgEFADCCB54GCSqGSIb3DQEHAaCCB48EggeLMYIHhzAKAgEIAgEBBAIWADAKAgEUAgEBBAIMADALAgEBAgEBBAMCAQAwCwIBAwIBAQQDDAEzMAsCAQsCAQEEAwIBADALAgEPAgEBBAMCAQAwCwIBEAIBAQQDAgEAMAsCARkCAQEEAwIBAzAMAgEKAgEBBAQWAjQrMAwCAQ4CAQEEBAICARowDQIBDQIBAQQFAgMCmaAwDQIBEwIBAQQFDAMxLjAwDgIBCQIBAQQGAgRQMzAyMBgCAQQCAQIEEDPRs4ekq0SkZlUgJ/eLt0kwGwIBAAIBAQQTDBFQcm9kdWN0aW9uU2FuZGJveDAcAgEFAgEBBBQtLi9MhuolXbWhk28w5m96/K6ikDAeAgEMAgEBBBYWFDIwMjQtMDItMDhUMTE6MTA6NTVaMB4CARICAQEEFhYUMjAxMy0wOC0wMV 00:50.805.216 Default Space Warhog (3570) com.apple.WebKit ProcessSuspension 0x1122c00e0 - [PID=3'571, throttler=0x112018880] ProcessThrottler::Activity::invalidate: Ending foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld' 00:50.826.899 Default Space Warhog (3570) Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: receiptsUpdated: [{"className":"Receipt","transactions":[{"className":"Transaction","transactionId":"appstore.application","state":"finished","products":[{"id":"com.stilugames.jabaliespacial"}],"platform":"ios-appstore"},{"className":"Transaction","transactionId":"2000000519733187","state":"finished","products":[{"id":"500monedas"}],"platform":"ios-appstore","purchaseDate":"2024-02-08T11:10:55.000Z"}],"platform":"ios-appstore","nativeData":{"appStoreReceipt":"MIIYaAYJKoZIhvcNAQcCoIIYWTCCGFUCAQExDzANBglghkgBZQMEAgEFADCCB54GCSqGSIb3DQEHAaCCB48EggeLMYIHhzAKAgEIAgEBBAIWADAKAgEUAgEBBAIMADALAgEBAgEBBAMCAQAwCwIBAwIBAQQDDAEzMAsCAQsCAQEEAwIBADALAgEPAgEBBAMCAQAwCwIBEAIBAQQDAgEAMAsCARkCAQEEAwIBAzAMAgEKAgEBBAQWAjQrMAwCAQ4CAQEEBAICARowDQIBDQIBAQQFAgMCmaAwDQIBEwIBAQQFDAMxLjAwDgIBCQIBAQQGAgRQMzAyMBgCAQQCAQIEEDPRs4ekq0SkZlUgJ/eLt0kwGwIBAAIBAQQTDBFQcm9kdWN0aW9uU2FuZGJveDAcAgEFAgEBBBQtLi9MhuolXbWhk28w5m96/K6ikDAeAgEMAgEBBBYWFDIwMjQtMDItMDhUMTE6MTA6NTVaMB4CARICAQEEFhYUMjAxMy0wOC0wMV 00:50.827.014 Default Space Warhog (3570) com.apple.WebKit ProcessSuspension 0x1122c0200 - [PID=3'571, throttler=0x112018880] ProcessThrottler::Activity::invalidate: Ending foreground activity / 'WebPageProxy::runJavaScriptInFrameInScriptWorld' 00:50.849.892 Default Space Warhog (3570) Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: receiptsUpdated: [{"className":"Receipt","transactions":[{"className":"Transaction","transactionId":"appstore.application","state":"finished","products":[{"id":"com.stilugames.jabaliespacial"}],"platform":"ios-appstore"},{"className":"Transaction","transactionId":"2000000519733187","state":"finished","products":[{"id":"500monedas"}],"platform":"ios-appstore","purchaseDate":"2024-02-08T11:10:55.000Z"}],"platform":"ios-appstore","nativeData":{"appStoreReceipt":"MIIYaAYJKoZIhvcNAQcCoIIYWTCCGFUCAQExDzANBglghkgBZQMEAgEFADCCB54GCSqGSIb3DQEHAaCCB48EggeLMYIHhzAKAgEIAgEBBAIWADAKAgEUAgEBBAIMADALAgEBAgEBBAMCAQAwCwIBAwIBAQQDDAEzMAsCAQsCAQEEAwIBADALAgEPAgEBBAMCAQAwCwIBEAIBAQQDAgEAMAsCARkCAQEEAwIBAzAMAgEKAgEBBAQWAjQrMAwCAQ4CAQEEBAICARowDQIBDQIBAQQFAgMCmaAwDQIBEwIBAQQFDAMxLjAwDgIBCQIBAQQGAgRQMzAyMBgCAQQCAQIEEDPRs4ekq0SkZlUgJ/eLt0kwGwIBAAIBAQQTDBFQcm9kdWN0aW9uU2FuZGJveDAcAgEFAgEBBBQtLi9MhuolXbWhk28w5m96/K6ikDAeAgEMAgEBBBYWFDIwMjQtMDItMDhUMTE6MTA6NTVaMB4CARICAQEEFhYUMjAxMy0wOC0wMV

konguele commented 2 months ago

Hello @j3k0 ,

Sorry to bother you, I'm going crazy looking for where the problem might be, I don't know if you've seen anything.

You can see all the process on the logs:

Line 72: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] INFO: initialize(["ios-appstore"]) v13.10.1 \ Line 75: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.Adapters] INFO: Adding platforms: [{"platform":"ios-appstore"}] \ Line 78: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.Adapters] INFO: \ Line 81: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.Adapters] INFO: AppStore initializing... \ Line 84: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: bridge.init \ Line 90: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] setup: OK \ Line 93: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] INFO: update() \ Line 101: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default WARN: [CdvPurchase] WARNING: Do not call store.update() at startup! It is meant to reload the price of products (if needed) long after initialization. \ Line 155: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: setup ok \ Line 158: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: ready \ Line 161: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: bridge.init done \ Line 167: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] canMakePayments: Device can make payments. \ Line 211: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.Adapters] INFO: AppStore initialized. \ Line 214: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.Adapters] INFO: AppStore products: [{"id":"500monedas","type":"consumable","platform":"ios-appstore"},{"id":"3000monedas","type":"consumable","platform":"ios-appstore"},{"id":"7500monedas","type":"consumable","platform":"ios-appstore"},{"id":"15000monedas","type":"consumable","platform":"ios-appstore"}] \ Line 217: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: bridge.load \ Line 220: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: load ["500monedas","3000monedas","7500monedas","15000monedas"] \ Line 223: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] load: Getting products data \ Line 226: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] load: Set has Line 231: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] load: - 15000monedas \ Line 234: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] load: - 500monedas \ Line 237: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] load: - 7500monedas \ Line 240: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] load: - 3000monedas \ Line 243: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] load: Starting product request... \ Line 288: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] load: Product request started \ Line 631: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: processing pending transactions \ Line 634: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] processPendingTransactionUpdates \ Line 3706: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: loading appstore receipt... \ Line 3709: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: loading appStoreReceipt \ Line 3712: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] appStoreReceipt: \ Line 3720: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: infoPlist: com.stilugames.jabaliespacial,1.0.42,50364416,???? \ Line 3723: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: appstore receipt loaded \ Line 3726: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: receiptsReady: ios-appstore (1/0) \ Line 3729: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default WARN: [CdvPurchase.AppleAppStore] WARNING: no appStoreReceipt \ Line 3737: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: receipt updated. \ Line 3740: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: receiptsUpdated: [{"className":"Receipt","transactions":[],"platform":"ios-appstore"}] \ Line 3793: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] BatchProductsRequestDelegate.productsRequest:didReceiveResponse: \ Line 3796: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] BatchProductsRequestDelegate.productsRequest:didReceiveResponse: Has Line 3801: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] BatchProductsRequestDelegate.productsRequest:didReceiveResponse: - 15000monedas: 15000 pepitas de oro \ Line 3804: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] BatchProductsRequestDelegate.productsRequest:didReceiveResponse: - 7500monedas: 7500 pepitas de oro \ Line 3807: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] BatchProductsRequestDelegate.productsRequest:didReceiveResponse: - 3000monedas: 3000 pepitas de oro \ Line 3810: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] BatchProductsRequestDelegate.productsRequest:didReceiveResponse: - 500monedas: 500 pepitas de oro \ Line 3813: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] BatchProductsRequestDelegate.productsRequest:didReceiveResponse: sendPluginResult: (\ Line 3887: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: load ok: { valid:[{"id":"15000monedas","description":"Compra 15000 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"15000 pepitas de oro","price":"CHF\'a025.00","billingPeriod":0,"group":null,"priceMicros":25000000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null},{"id":"7500monedas","description":"Compra 7500 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"7500 pepitas de oro","price":"CHF\'a013.50","billingPeriod":0,"group":null,"priceMicros":13500000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null},{"id":"3000monedas","description":"Compra 3000 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUn... Line 3890: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: bridge.loaded: {"validProducts":[{"id":"15000monedas","description":"Compra 15000 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"15000 pepitas de oro","price":"CHF\'a025.00","billingPeriod":0,"group":null,"priceMicros":25000000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null},{"id":"7500monedas","description":"Compra 7500 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"7500 pepitas de oro","price":"CHF\'a013.50","billingPeriod":0,"group":null,"priceMicros":13500000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null},{"id":"3000monedas","description":"Compra 3000 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingP... Line 3893: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: load eligibility: [{"id":"15000monedas","description":"Compra 15000 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"15000 pepitas de oro","price":"CHF\'a025.00","billingPeriod":0,"group":null,"priceMicros":25000000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null},{"id":"7500monedas","description":"Compra 7500 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"7500 pepitas de oro","price":"CHF\'a013.50","billingPeriod":0,"group":null,"priceMicros":13500000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null},{"id":"3000monedas","description":"Compra 3000 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Da... Line 3896: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: No discount eligibility determiner, skipping... \ Line 3899: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: eligibilities ready: {"request":[],"response":[]} \ Line 3902: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: 500monedas is valid: {"id":"500monedas","description":"Compra 500 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"500 pepitas de oro","price":"CHF\'a01.00","billingPeriod":0,"group":null,"priceMicros":1000000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null} \ Line 3905: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: registering new product \ Line 3908: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: 3000monedas is valid: {"id":"3000monedas","description":"Compra 3000 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"3000 pepitas de oro","price":"CHF\'a04.50","billingPeriod":0,"group":null,"priceMicros":4500000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null} \ Line 3911: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: registering new product \ Line 3914: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: 7500monedas is valid: {"id":"7500monedas","description":"Compra 7500 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"7500 pepitas de oro","price":"CHF\'a013.50","billingPeriod":0,"group":null,"priceMicros":13500000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null} \ Line 3917: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: registering new product \ Line 3920: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: 15000monedas is valid: {"id":"15000monedas","description":"Compra 15000 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"15000 pepitas de oro","price":"CHF\'a025.00","billingPeriod":0,"group":null,"priceMicros":25000000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null} \ Line 3923: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: registering new product \ Line 3926: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: Products loaded: [{"className":"Product","title":"500 pepitas de oro","description":"Compra 500 pepitas de oro","platform":"ios-appstore","type":"consumable","id":"500monedas","offers":[{"className":"Offer","id":"$","pricingPhases":[{"price":"CHF\'a01.00","priceMicros":1000000,"currency":"CHF","paymentMode":"UpFront","recurrenceMode":"NON_RECURRING"}],"productId":"500monedas","productType":"consumable","platform":"ios-appstore","offerType":"Default"}],"raw":{"id":"500monedas","description":"Compra 500 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"500 pepitas de oro","price":"CHF\'a01.00","billingPeriod":0,"group":null,"priceMicros":1000000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null},"countryCode":"CH"},{"className":"Product","title":"3000 pepitas ... Line 3929: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.Adapters] INFO: AppStore products loaded: [{"className":"Product","title":"500 pepitas de oro","description":"Compra 500 pepitas de oro","platform":"ios-appstore","type":"consumable","id":"500monedas","offers":[{"className":"Offer","id":"$","pricingPhases":[{"price":"CHF\'a01.00","priceMicros":1000000,"currency":"CHF","paymentMode":"UpFront","recurrenceMode":"NON_RECURRING"}],"productId":"500monedas","productType":"consumable","platform":"ios-appstore","offerType":"Default"}],"raw":{"id":"500monedas","description":"Compra 500 pepitas de oro","introPrice":null,"introPricePaymentMode":null,"billingPeriodUnit":"Day","countryCode":"CH","introPricePeriodUnit":null,"discounts":[],"title":"500 pepitas de oro","price":"CHF\'a01.00","billingPeriod":0,"group":null,"priceMicros":1000000,"currency":"CHF","introPricePeriod":null,"introPriceMicros":null},"countryCode":"CH"},{"className":"Product","title":"3000 pepit... Line 3932: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.Adapters] INFO: AppStore receipts loaded: [{"className":"Receipt","transactions":[],"platform":"ios-appstore"}] \ Line 3935: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: setSupportedPlatforms: ios-appstore (1 have their receipts ready) \ Line 3938: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: triggering receiptsReady() \ Line 3946: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] DEBUG: Calling callback: type=ready() name=#15d4a0a696c299660b4e931e37eb97c2 reason=initialize_promise_resolved \ Line 3949: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] DEBUG: Calling callback: type=receiptsReady() name=receiptsMonitor_setup reason=adapterListener_setSupportedPlatforms \ Line 3952: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.ReceiptsMonitor] DEBUG: receiptsReady... \ Line 3955: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.ReceiptsMonitor] DEBUG: check(0/0) \ Line 3958: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.ReceiptsMonitor] INFO: receiptsVerified() \ Line 4105: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] INFO: order(500monedas) \ Line 4108: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: order \ Line 4111: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] purchase: About to do IAP \ Line 4114: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] paymentQueue:updatedTransactions: 500monedas \ Line 4117: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] paymentQueue:updatedTransactions: Purchasing... \ Line 4120: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] paymentQueue:updatedTransactions: State: PaymentTransactionStatePurchasing \ Line 4123: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] processTransactionUpdate:withArgs: transactionIdentifier= \ Line 4136: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: Purchase enqueued 500monedas \ Line 4139: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: purchaseEnqueued: 500monedas - 1 \ Line 4142: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: order.success \ Line 4145: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: receiptsUpdated: [{"className":"Receipt","transactions":[{"className":"Transaction","transactionId":"virtual.500monedas","state":"initiated","products":[{"id":"500monedas"}],"platform":"ios-appstore"}],"platform":"ios-appstore"}] \ Line 4153: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: transaction updated: state:PaymentTransactionStatePurchasing product:500monedas \ Line 4156: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: purchasing: 500monedas \ Line 4159: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: receiptsUpdated: [{"className":"Receipt","transactions":[{"className":"Transaction","transactionId":"virtual.500monedas","state":"initiated","products":[{"id":"500monedas"}],"platform":"ios-appstore"}],"platform":"ios-appstore"}] \ Line 11728: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] paymentQueue:updatedTransactions: 500monedas \ Line 11731: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] paymentQueue:updatedTransactions: State: PaymentTransactionStatePurchased \ Line 11734: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] processTransactionUpdate:withArgs: transactionIdentifier=2000000519733187 \ Line 11742: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: transaction updated:2000000519733187 state:PaymentTransactionStatePurchased product:500monedas \ Line 11745: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: purchase: id:2000000519733187 product:500monedas originalTransaction: - date:1707390655000.000000 - discount: \ Line 11748: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: loading appstore receipt... \ Line 11751: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: loading appStoreReceipt \ Line 11754: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.objc] appStoreReceipt: \ Line 11767: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore.Bridge] DEBUG: infoPlist: com.stilugames.jabaliespacial,1.0.42,50364416,???? \ Line 11770: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: appstore receipt loaded \ Line 11773: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: receiptsReady: ios-appstore(skipping) \ Line 11776: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] INFO: order.paymentMonitor => purchased \ Line 11845: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AppleAppStore] DEBUG: receipt updated and ready. \ Line 11848: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: receiptsUpdated: [{"className":"Receipt","transactions":[{"className":"Transaction","transactionId":"appstore.application","state":"approved","products":[{"id":"com.stilugames.jabaliespacial"}],"platform":"ios-appstore"},{"className":"Transaction","transactionId":"2000000519733187","state":"approved","products":[{"id":"500monedas","offerId":""}],"platform":"ios-appstore","purchaseDate":"2024-02-08T11:10:55.000Z"}],"platform":"ios-appstore","nativeData":{"appStoreReceipt":"MIIYaAYJKoZIhvcNAQcCoIIYWTCCGFUCAQExDzANBglghkgBZQMEAgEFADCCB54GCSqGSIb3DQEHAaCCB48EggeLMYIHhzAKAgEIAgEBBAIWADAKAgEUAgEBBAIMADALAgEBAgEBBAMCAQAwCwIBAwIBAQQDDAEzMAsCAQsCAQEEAwIBADALAgEPAgEBBAMCAQAwCwIBEAIBAQQDAgEAMAsCARkCAQEEAwIBAzAMAgEKAgEBBAQWAjQrMAwCAQ4CAQEEBAICARowDQIBDQIBAQQFAgMCmaAwDQIBEwIBAQQFDAMxLjAwDgIBCQIBAQQGAgRQMzAyMBgCAQQCAQIEEDPRs4ekq0SkZlUgJ/eLt0kwGwIBAAIBAQQTDBFQcm9kdWN0aW9uU2FuZGJveDAcAgEFAgEB... Line 12048: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.AdapterListener] DEBUG: receiptsReady: ios-appstore(skipping) \ Line 12056: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] DEBUG: Calling callback: type=approved() name=transactionStateMonitors_callOnChange reason=adapterListener_receiptsUpdated_approved \ Line 12059: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] DEBUG: Calling callback: type=approved() name=#efee3d7b1bea62da4bf830ac52793314 reason=adapterListener_receiptsUpdated_approved \ Line 12062: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] INFO: verify(Transaction) \ Line 12065: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.Validator] DEBUG: Schedule validation: {"className":"Transaction","transactionId":"appstore.application","state":"approved","products":[{"id":"com.stilugames.jabaliespacial"}],"platform":"ios-appstore"} \ Line 12068: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.Validator] DEBUG: Validation requests=1 responses=0 \ Line 12071: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] DEBUG: Calling callback: type=approved() name=#efee3d7b1bea62da4bf830ac52793314 reason=adapterListener_receiptsUpdated_approved \ Line 12074: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] INFO: verify(Transaction) \ Line 12077: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase.Validator] DEBUG: Schedule validation: {"className":"Transaction","transactionId":"appstore.application","state":"approved","products":[{"id":"com.stilugames.jabaliespacial"}],"platform":"ios-appstore"} \ Line 12080: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] DEBUG: Calling callback: type=approved() name=#efee3d7b1bea62da4bf830ac52793314 reason=adapterListener_receiptsUpdated_approved \ Line 12083: \f0\fs24 Default Space Warhog \cf2 (3570)\cf0 Space Warhog Default [CdvPurchase] INFO: verify(Transaction) \