RevenueCat / purchases-capacitor

Capacitor in-app purchases and subscriptions made easy.
MIT License
129 stars 14 forks source link

Awaiting some calls does not timeout if there are network issues #282

Open PAFriedrichMueller opened 6 days ago

PAFriedrichMueller commented 6 days ago

Calling getCustomerInfo like this will not fulfill or reject the promise if there are network problems on android

try {
    await Purchases.getCustomerInfo()
    //never reached
} catch (e) {
    //never reached 
}

usually this will just return the cached version afaik but if you start the app for the first time on android and all network traffic is blocked (not disconnected)

RCGitBot commented 6 days ago

👀 We've just linked this issue to our internal tracker and notified the team. Thank you for reporting, we're checking this out!

mshmoustafa commented 4 days ago

Hi @PAFriedrichMueller, Can you provide debug logs that reproduce this?

PAFriedrichMueller commented 3 days ago

There aren't really any logs as the call never returns but here is a minimal example https://github.com/PAFriedrichMueller/RevCatIssue/

and this is all i get in the js console

Setting up Revenucat for Android
VM3:365 native Purchases.configure (#-1)
7605.4a7b0a24d48baaa3.js:1 Purchases.getCustomerInfo() called
VM3:365 native Purchases.getCustomerInfo (#84165191)

in my example repo there should be at least some console output from this code

    try {
      console.log("Purchases.getCustomerInfo() called");
      let { customerInfo } = await Purchases.getCustomerInfo()
      //never reached
      console.log("info");
      console.log(customerInfo);
    } catch (e) {
      //never reached
      console.log("error");
      console.log(e);
    }

but since there is no network connection/the request are blocked/timed out the call seems to never return because there isn't any cached customer info either (first start of the app)

PAFriedrichMueller commented 3 days ago

i guess there is this form the android logs

Compat change id reported: 214741472; UID 10563; state: ENABLED
2024-07-04 12:46:38.424 16661-16661 Compatibil...geReporter com.example.app                      D  Compat change id reported: 171228096; UID 10563; state: ENABLED
2024-07-04 12:46:38.469 16661-16661 ConnectivityManager     com.example.app                      D  StackLog: [android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4402)] [android.net.ConnectivityManager.registerDefaultNetworkCallbackForUid(ConnectivityManager.java:4966)] [android.net.ConnectivityManager.registerDefaultNetworkCallback(ConnectivityManager.java:4933)] [WV.wD.e(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:44)] [WV.wD.b(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:1)] [org.chromium.android_webview.AwContentsLifecycleNotifier.onFirstWebViewCreated(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:22)] [J.N.MFiR_zHY(Native Method)] [org.chromium.android_webview.AwContents.<init>(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:459)] [com.android.webview.chromium.k.run(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:147)] [WV.GY.b(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:20)] [WV.FY.run(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:3)] [org.chromium.base.task.PostTask.e(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:11)] [WV.GY.a(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:23)] [com.android.webview.chromium.WebViewChromiumFactoryProvider.a(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:3)] [com.android.webview.chromium.WebViewChromium.init(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:327)] [android.webkit.WebView.<init>(WebView.java:447)] [android.webkit.WebView.<init>(WebView.java:367)] [android.webkit.WebView.<init>(WebView.java:349)] [android.webkit.WebView.<init>(WebView.java:336)] [com.getcapacitor.CapacitorWebView.<init>(CapacitorWebView.java:17)] [java.lang.reflect.Constructor.newInstance0(Native Method)] [java.lang.reflect.Constructor.newInstance(Constructor.java:343)] [android.view.LayoutInflater.createView(LayoutInflater.java:882)] [android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1034)] [android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:989)] [android.view.LayoutInflater.rInflate(LayoutInflater.java:1151)] [android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1112)] [android.view.LayoutInflater.inflate(LayoutInflater.java:700)] [android.view.LayoutInflater.inflate(LayoutInflater.java:544)] [android.view.LayoutInflater.inflate(LayoutInflater.java:491)] [androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:775)] [androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:197)] [com.getcapacitor.BridgeActivity.onCreate(BridgeActivity.java:28)] [android.app.Activity.performCreate(Activity.java:8975)] [android.app.Activity.performCreate(Activity.java:8944)] [android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1456)] [android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4146)] [android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322)] [android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)] [android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)] [android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)] [android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)]
2024-07-04 12:46:38.477 16661-16661 TrafficStats            com.example.app                      D  tagSocket(164) with statsTag=0xffffffff, statsUid=-1
2024-07-04 12:46:38.497 16661-16661 ConnectivityManager     com.example.app                      D  StackLog: [android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4402)] [android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:4444)] [android.net.ConnectivityManager.registerNetworkCallback(ConnectivityManager.java:4826)] [WV.wD.e(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:93)] [WV.wD.b(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:1)] [org.chromium.android_webview.AwContentsLifecycleNotifier.onFirstWebViewCreated(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:22)] [J.N.MFiR_zHY(Native Method)] [org.chromium.android_webview.AwContents.<init>(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:459)] [com.android.webview.chromium.k.run(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:147)] [WV.GY.b(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:20)] [WV.FY.run(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:3)] [org.chromium.base.task.PostTask.e(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:11)] [WV.GY.a(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:23)] [com.android.webview.chromium.WebViewChromiumFactoryProvider.a(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:3)] [com.android.webview.chromium.WebViewChromium.init(chromium-TrichromeWebViewGoogle6432.aab-stable-647813333:327)] [android.webkit.WebView.<init>(WebView.java:447)] [android.webkit.WebView.<init>(WebView.java:367)] [android.webkit.WebView.<init>(WebView.java:349)] [android.webkit.WebView.<init>(WebView.java:336)] [com.getcapacitor.CapacitorWebView.<init>(CapacitorWebView.java:17)] [java.lang.reflect.Constructor.newInstance0(Native Method)] [java.lang.reflect.Constructor.newInstance(Constructor.java:343)] [android.view.LayoutInflater.createView(LayoutInflater.java:882)] [android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1034)] [android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:989)] [android.view.LayoutInflater.rInflate(LayoutInflater.java:1151)] [android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1112)] [android.view.LayoutInflater.inflate(LayoutInflater.java:700)] [android.view.LayoutInflater.inflate(LayoutInflater.java:544)] [android.view.LayoutInflater.inflate(LayoutInflater.java:491)] [androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:775)] [androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:197)] [com.getcapacitor.BridgeActivity.onCreate(BridgeActivity.java:28)] [android.app.Activity.performCreate(Activity.java:8975)] [android.app.Activity.performCreate(Activity.java:8944)] [android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1456)] [android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4146)] [android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4322)] [android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)] [android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)] [android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)] [android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)]
2024-07-04 12:46:38.504 16661-16661 TrafficStats            com.example.app                      D  tagSocket(164) with statsTag=0xffffffff, statsUid=-1
2024-07-04 12:46:38.598 16661-16661 Capacitor               com.example.app                      D  Starting BridgeActivity
2024-07-04 12:46:38.659 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: CapacitorCookies
2024-07-04 12:46:38.673 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: WebView
2024-07-04 12:46:38.684 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: CapacitorHttp
2024-07-04 12:46:38.694 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: App
2024-07-04 12:46:38.704 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: Camera
2024-07-04 12:46:38.716 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: Filesystem
2024-07-04 12:46:38.729 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: Haptics
2024-07-04 12:46:38.740 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: Keyboard
2024-07-04 12:46:38.750 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: Preferences
2024-07-04 12:46:38.764 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: StatusBar
2024-07-04 12:46:38.776 16661-16661 Capacitor               com.example.app                      D  Registering plugin instance: Purchases
2024-07-04 12:46:39.152 16661-16661 Capacitor               com.example.app                      W  Unable to read file at path public/plugins
2024-07-04 12:46:39.166 16661-16661 Capacitor               com.example.app                      D  Loading app at https://localhost
2024-07-04 12:46:39.197 16661-16834 cr_media                com.example.app                      W  BLUETOOTH_CONNECT permission is missing.
2024-07-04 12:46:39.200 16661-16834 cr_media                com.example.app                      W  getBluetoothAdapter() requires BLUETOOTH permission
2024-07-04 12:46:39.200 16661-16834 cr_media                com.example.app                      W  registerBluetoothIntentsIfNeeded: Requires BLUETOOTH permission
2024-07-04 12:46:39.271 16661-16661 Capacitor               com.example.app                      D  App started
2024-07-04 12:46:39.276 16661-16661 WindowOnBackDispatcher  com.example.app                      W  OnBackInvokedCallback is not enabled for the application.
                                                                                                    Set 'android:enableOnBackInvokedCallback="true"' in the application manifest.
2024-07-04 12:46:39.284 16661-16661 Capacitor/AppPlugin     com.example.app                      D  Firing change: true
2024-07-04 12:46:39.285 16661-16661 Capacitor/AppPlugin     com.example.app                      V  Notifying listeners for event appStateChange
2024-07-04 12:46:39.285 16661-16661 Capacitor/AppPlugin     com.example.app                      D  No listeners found for event appStateChange
2024-07-04 12:46:39.286 16661-16661 Capacitor               com.example.app                      D  App resumed
2024-07-04 12:46:39.311 16661-16661 Compatibil...geReporter com.example.app                      D  Compat change id reported: 237531167; UID 10563; state: DISABLED
2024-07-04 12:46:39.317 16661-16799 NativeCust...ncyManager com.example.app                      D  [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
2024-07-04 12:46:39.340 16661-16661 InsetsController        com.example.app                      I  onStateChanged: host=com.example.app/com.example.app.MainActivity, from=android.view.ViewRootImpl.setView:1753, state=InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2400), mDisplayCutout=DisplayCutout{insets=Rect(0, 88 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 568, 88), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1080 physicalDisplayHeight=2400 density={2.8125} cutoutSpec={M 0,0 M 0,11.43427858034597 a 9.899054752987353,9.899054752987353 0 1,0 0,19.79810950597471 a 9.899054752987353,9.899054752987353 0 1,0 0,-19.79810950597471 Z @dp} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=0, center=Point(0, 0)}, RoundedCorner{position=TopRight, radius=0, center=Point(0, 0)}, RoundedCorner{position=BottomRight, radius=0, center=Point(0, 0)}, RoundedCorner{position=BottomLeft, radius=0, center=Point(0, 0)}]}  mRoundedCornerFrame=Rect(0, 0 - 1080, 2400), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(956, 0 - 1080, 88) rotation=0}, mDisplayShape=DisplayShape{ spec=-311912193 displayWidth=1080 displayHeight=2400 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}, mSources= { InsetsSource: {d71c0000 mType=statusBars mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {d71c0005 mType=mandatorySystemGestures mFrame=[0,0][1080,122] mVisible=true mFlags=[]}, InsetsSource: {d71c0006 mType=tappableElement mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {3 mType=ime mFrame=[0,0][0,0] mVisible=false mFlags=[]}, InsetsSource: {27 mType=displayCutout mFrame=[0,0][1080,88] mVisible=true mFlags=[]}, InsetsSource: {19bd0001 mType=navigationBars mFrame=[0,2265][1080,2400] mVisible=false mFlags=[]}, InsetsSource: {19bd0004 mType=systemGestures mFrame=[0,0][0,0] mVisible=true mFlags=[]}, InsetsSource: {19bd0005 mType=mandatorySystemGestures mFrame=[0,2265][1080,2400] mVisible=true mFlags=[]}, InsetsSource: {19bd0006 mType=tappableElement mFrame=[0,2265][1080,2400] mVisible=true mFlags=[]}, InsetsSource: {19bd0024 mType=systemGestures mFrame=[0,0][0,0] mVisible=true mFlags=[]} }
2024-07-04 12:46:39.346 16661-16661 ViewRootIm...nActivity] com.example.app                      I  synced displayState. AttachInfo displayState=1
2024-07-04 12:46:39.347 16661-16661 ViewRootIm...nActivity] com.example.app                      I  setView = com.android.internal.policy.DecorView@1e9eec0 TM=true
2024-07-04 12:46:39.357 16661-16828 Capacitor               com.example.app                      D  Handling local request: https://localhost/
2024-07-04 12:46:39.443 16661-16829 Capacitor               com.example.app                      D  Handling local request: https://localhost/runtime.7c902f263cc8dbb0.js
2024-07-04 12:46:39.445 16661-16832 Capacitor               com.example.app                      D  Handling local request: https://localhost/polyfills.a945b0249cb630b5.js
2024-07-04 12:46:39.448 16661-16836 Capacitor               com.example.app                      D  Handling local request: https://localhost/main.f32530c6e3de4cbd.js
2024-07-04 12:46:39.486 16661-16661 Capacitor/AppPlugin     com.example.app                      V  Notifying listeners for event pause
2024-07-04 12:46:39.487 16661-16661 Capacitor/AppPlugin     com.example.app                      D  No listeners found for event pause
2024-07-04 12:46:39.488 16661-16661 Capacitor               com.example.app                      D  App paused
2024-07-04 12:46:39.493 16661-16799 OpenGLRenderer          com.example.app                      D  CacheManager::trimMemory(20)
2024-07-04 12:46:39.496 16661-16661 ViewRootIm...nActivity] com.example.app                      I  stopped(true) old = false
2024-07-04 12:46:39.496 16661-16661 ViewRootIm...nActivity] com.example.app                      D  WindowStopped on com.example.app/com.example.app.MainActivity set to true
2024-07-04 12:46:39.496 16661-16799 OpenGLRenderer          com.example.app                      D  CacheManager::trimMemory(20)
2024-07-04 12:46:39.499 16661-16661 Capacitor/AppPlugin     com.example.app                      D  Firing change: false
2024-07-04 12:46:39.499 16661-16661 Capacitor/AppPlugin     com.example.app                      V  Notifying listeners for event appStateChange
2024-07-04 12:46:39.500 16661-16661 Capacitor/AppPlugin     com.example.app                      D  No listeners found for event appStateChange
2024-07-04 12:46:39.500 16661-16661 Capacitor               com.example.app                      D  App stopped
2024-07-04 12:46:39.503 16661-16661 Capacitor               com.example.app                      D  Saving instance state!
2024-07-04 12:46:39.506 16661-16661 Choreographer           com.example.app                      I  Skipped 203 frames!  The application may be doing too much work on its main thread.
2024-07-04 12:46:39.529 16661-16661 Compatibil...geReporter com.example.app                      D  Compat change id reported: 193247900; UID 10563; state: ENABLED
2024-07-04 12:46:39.556 16661-16827 Capacitor               com.example.app                      D  Handling local request: https://localhost/styles.d2b228d0a7e34779.css
2024-07-04 12:46:39.572 16661-16841 AudioCapabilities       com.example.app                      W  Unsupported mime audio/x-ima
2024-07-04 12:46:39.577 16661-16661 ViewRootIm...nActivity] com.example.app                      I  Relayout returned: old=(0,0,1080,2400) new=(0,0,1080,2400) relayoutAsync=false req=(0,0)4 dur=11 res=0x400 s={false 0x0} ch=false seqId=0
2024-07-04 12:46:39.579 16661-16841 AudioCapabilities       com.example.app                      W  Unsupported mime audio/mpeg-L1
2024-07-04 12:46:39.582 16661-16841 AudioCapabilities       com.example.app                      W  Unsupported mime audio/mpeg-L2
2024-07-04 12:46:39.587 16661-16841 VideoCapabilities       com.example.app                      W  Unsupported mime video/wvc1
2024-07-04 12:46:39.593 16661-16841 VideoCapabilities       com.example.app                      W  Unsupported mime video/x-ms-wmv
2024-07-04 12:46:39.627 16661-16661 TrafficStats            com.example.app                      D  tagSocket(217) with statsTag=0xffffffff, statsUid=-1
2024-07-04 12:46:39.634 16661-16661 TrafficStats            com.example.app                      D  tagSocket(217) with statsTag=0xffffffff, statsUid=-1
2024-07-04 12:46:39.645 16661-16799 OpenGLRenderer          com.example.app                      D  HWUI - treat SMPTE_170M as sRGB
2024-07-04 12:46:39.670 16661-16661 ViewRootIm...nActivity] com.example.app                      I  handleAppVisibility mAppVisible = true visible = false
2024-07-04 12:46:39.671  1432-3287  WindowManager           system_server                        E  win=Window{6a122f9 u0 Splash Screen com.example.app} destroySurfaces: appStopped=true cleanupOnResume=false win.mWindowRemovalAllowed=false win.mRemoveOnExit=false win.mViewVisibility=8 caller=com.android.server.wm.WindowManagerService.tryStartExitingAnimation:2980 com.android.server.wm.WindowManagerService.relayoutWindow:2685 com.android.server.wm.Session.relayout:282 android.view.IWindowSession$Stub.onTransact:782 com.android.server.wm.Session.onTransact:204 android.os.Binder.execTransactInternal:1380 android.os.Binder.execTransact:1311 
2024-07-04 12:46:39.942 16661-16841 VideoCapabilities       com.example.app                      W  Unsupported mime image/vnd.android.heic
2024-07-04 12:46:39.948 16661-16841 VideoCapabilities       com.example.app                      W  Unsupported mime image/vnd.android.heic
2024-07-04 12:46:40.330 16661-16836 com.example.app         com.example.app                      W  Long monitor contention with owner ThreadPoolForeg (16832) at java.lang.Object libcore.content.type.MimeMap$MemoizingSupplier.get()(MimeMap.java:475) waiters=0 in java.lang.Object libcore.content.type.MimeMap$MemoizingSupplier.get() for 872ms
2024-07-04 12:46:40.331 16661-16829 com.example.app         com.example.app                      W  Long monitor contention with owner ThreadPoolForeg (16832) at java.lang.Object libcore.content.type.MimeMap$MemoizingSupplier.get()(MimeMap.java:475) waiters=1 in java.lang.Object libcore.content.type.MimeMap$MemoizingSupplier.get() for 863ms
2024-07-04 12:46:40.332 16661-16827 com.example.app         com.example.app                      W  Long monitor contention with owner ThreadPoolForeg (16832) at java.lang.Object libcore.content.type.MimeMap$MemoizingSupplier.get()(MimeMap.java:475) waiters=2 in java.lang.Object libcore.content.type.MimeMap$MemoizingSupplier.get() for 774ms
2024-07-04 12:46:40.719 16661-16661 Capacitor/Plugin        com.example.app                      V  To native (Capacitor plugin): callbackId: -1, pluginId: Purchases, methodName: setLogLevel
2024-07-04 12:46:40.721 16661-16661 Capacitor               com.example.app                      V  callback: -1, pluginId: Purchases, methodName: setLogLevel, methodData: {"level":"DEBUG"}
2024-07-04 12:46:40.724 16661-16661 Capacitor/Console       com.example.app                      I  File: https://localhost/main.f32530c6e3de4cbd.js - Line 1 - Msg: Setting up Revenucat for Android
2024-07-04 12:46:40.734 16661-16827 Capacitor               com.example.app                      D  Handling local request: https://localhost/common.8bf5342a5042a0fb.js
2024-07-04 12:46:40.739 16661-16661 Capacitor/Plugin        com.example.app                      V  To native (Capacitor plugin): callbackId: -1, pluginId: Purchases, methodName: configure
2024-07-04 12:46:40.741 16661-16661 Capacitor               com.example.app                      V  callback: -1, pluginId: Purchases, methodName: configure, methodData: {"apiKey":"goog_cSZnBQBBWSZSLWpvMpxKgehFcUh","appUserID":null}
2024-07-04 12:46:40.742 16661-16828 Capacitor               com.example.app                      D  Handling local request: https://localhost/7720.e289884d9a4191bb.js
2024-07-04 12:46:40.811 16661-16827 Capacitor               com.example.app                      D  Handling local request: https://localhost/5695.fa6caa20e192f74b.js
2024-07-04 12:46:40.860 16661-16827 Capacitor               com.example.app                      D  Handling local request: https://localhost/7605.4a7b0a24d48baaa3.js
2024-07-04 12:46:40.913 16661-16847 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Debug logging enabled
2024-07-04 12:46:40.914 16661-16847 [Purchases] - DEBUG     com.example.app                      D  ℹ️ SDK Version - 7.11.0
2024-07-04 12:46:40.914 16661-16847 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Package name - com.example.app
2024-07-04 12:46:40.916 16661-16847 [Purchases] - DEBUG     com.example.app                      D  👤 Initial App User ID - null
2024-07-04 12:46:40.916 16661-16847 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Purchases configured with response verification: DISABLED
2024-07-04 12:46:40.929 16661-16847 [Purchases] - DEBUG     com.example.app                      D  👤 Identifying App User ID: $RCAnonymousID:cf7cc05342924819a5b24ba0edd10a45
2024-07-04 12:46:40.932 16661-16847 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Deleting old synced subscriber attributes that don't belong to $RCAnonymousID:cf7cc05342924819a5b24ba0edd10a45
2024-07-04 12:46:40.950 16661-16847 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Listener set
2024-07-04 12:46:40.952 16661-16847 Capacitor/AppPlugin     com.example.app                      D  Firing restored result
2024-07-04 12:46:40.954 16661-16847 Capacitor/AppPlugin     com.example.app                      V  Notifying listeners for event appRestoredResult
2024-07-04 12:46:40.954 16661-16847 Capacitor/AppPlugin     com.example.app                      D  No listeners found for event appRestoredResult
2024-07-04 12:46:40.964 16661-16828 Capacitor               com.example.app                      D  Handling local request: https://localhost/4591.6000af04e77e3627.js
2024-07-04 12:46:40.967 16661-16827 Capacitor               com.example.app                      D  Handling local request: https://localhost/4406.7672ce7e2bafc13b.js
2024-07-04 12:46:40.976 16661-16829 Capacitor               com.example.app                      D  Handling local request: https://localhost/3506.eb40002bec1fe567.js
2024-07-04 12:46:41.052 16661-16661 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Starting connection for com.android.billingclient.api.BillingClientImpl@1106ed6
2024-07-04 12:46:41.094 16661-16937 Compatibil...geReporter com.example.app                      D  Compat change id reported: 194532703; UID 10563; state: ENABLED
2024-07-04 12:46:41.098 16661-16661 Capacitor/Console       com.example.app                      I  File: https://localhost/7605.4a7b0a24d48baaa3.js - Line 1 - Msg: Purchases.getCustomerInfo() called
2024-07-04 12:46:41.100 16661-16937 Compatibil...geReporter com.example.app                      D  Compat change id reported: 253665015; UID 10563; state: ENABLED
2024-07-04 12:46:41.108 16661-16827 Capacitor               com.example.app                      D  Handling local request: https://localhost/svg/triangle.svg
2024-07-04 12:46:41.112 16661-16661 Capacitor/Plugin        com.example.app                      V  To native (Capacitor plugin): callbackId: 126650914, pluginId: Purchases, methodName: getCustomerInfo
2024-07-04 12:46:41.113 16661-16661 Capacitor               com.example.app                      V  callback: 126650914, pluginId: Purchases, methodName: getCustomerInfo, methodData: {}
2024-07-04 12:46:41.117 16661-16847 [Purchases] - DEBUG     com.example.app                      D  Retrieving customer info with policy: CACHED_OR_FETCHED
2024-07-04 12:46:41.118 16661-16847 [Purchases] - DEBUG     com.example.app                      D  ℹ️ No cached CustomerInfo, fetching from network.
2024-07-04 12:46:41.119 16661-16847 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Updating pending purchase queue
2024-07-04 12:46:41.130 16661-16661 Capacitor/Plugin        com.example.app                      V  To native (Capacitor plugin): callbackId: 126650915, pluginId: Keyboard, methodName: getResizeMode
2024-07-04 12:46:41.130 16661-16661 Capacitor               com.example.app                      V  callback: 126650915, pluginId: Keyboard, methodName: getResizeMode, methodData: {}
2024-07-04 12:46:41.134 16661-16827 Capacitor               com.example.app                      D  Handling local request: https://localhost/assets/icon/favicon.png
2024-07-04 12:46:41.142 16661-16847 Capacitor               com.example.app                      D  Sending plugin error: {"save":false,"callbackId":"126650915","pluginId":"Keyboard","methodName":"getResizeMode","success":false,"error":{"message":"not implemented","code":"UNIMPLEMENTED"}}
2024-07-04 12:46:41.161 16661-16939 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Querying purchases
2024-07-04 12:46:41.206 16661-16942 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Cleaning previously sent tokens
2024-07-04 12:46:41.208 16661-16942 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Tokens already posted: []
2024-07-04 12:46:41.208 16661-16942 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Saving tokens []
2024-07-04 12:46:41.210 16661-16942 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Tokens already posted: []
2024-07-04 12:46:41.210 16661-16942 [Purchases] - DEBUG     com.example.app                      D  ℹ️ No pending purchases to sync
2024-07-04 12:46:41.218 16661-16661 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Billing Service Setup finished for com.android.billingclient.api.BillingClientImpl@1106ed6
2024-07-04 12:46:41.219 16661-16661 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Updating pending purchase queue
2024-07-04 12:46:41.220 16661-16939 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Querying purchases
2024-07-04 12:46:41.240 16661-16945 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Cleaning previously sent tokens
2024-07-04 12:46:41.241 16661-16945 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Tokens already posted: []
2024-07-04 12:46:41.242 16661-16945 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Saving tokens []
2024-07-04 12:46:41.243 16661-16945 [Purchases] - DEBUG     com.example.app                      D  ℹ️ Tokens already posted: []
2024-07-04 12:46:41.244 16661-16945 [Purchases] - DEBUG     com.example.app                      D  ℹ️ No pending purchases to sync
2024-07-04 12:46:41.349 16661-16866 [Purchases] - DEBUG     com.example.app                      D  Billing connected with country code: DE
2024-07-04 12:46:45.207 16661-16947 ProfileInstaller        com.example.app                      D  Installing profile for com.example.app
2024-07-04 12:46:45.247 16661-16939 CapacitorCookies        com.example.app                      I  Getting cookies at: 'https://api.revenuecat.com/v1/subscribers/%24RCAnonymousID%3Acf7cc05342924819a5b24ba0edd10a45'
2024-07-04 12:46:45.360 16661-16939 TrafficStats            com.example.app                      D  tagSocket(220) with statsTag=0xffffffff, statsUid=-1
2024-07-04 12:47:06.135 16661-16661 ViewRootIm...nActivity] com.example.app                      I  destroyHardwareResources: Callers=android.view.ViewRootImpl.performTraversals:3932 android.view.ViewRootImpl.doTraversal:3288 android.view.ViewRootImpl$TraversalRunnable.run:11344 android.view.Choreographer$CallbackRecord.run:1689 android.view.Choreographer$CallbackRecord.run:1698 android.view.Choreographer.doCallbacks:1153 android.view.Choreographer.doFrame:1079 android.view.Choreographer$FrameDisplayEventReceiver.run:1646 android.os.Handler.handleCallback:958 android.os.Handler.dispatchMessage:99 
2024-07-04 12:47:06.137 16661-16799 OpenGLRenderer          com.example.app                      D  CacheManager::trimMemory(20)
2024-07-04 12:47:06.164 16661-16661 ViewRootIm...nActivity] com.example.app                      I  Relayout returned: old=(0,0,1080,2400) new=(0,0,1080,2400) relayoutAsync=false req=(0,0)8 dur=22 res=0x400 s={false 0x0} ch=false seqId=0
2024-07-04 12:47:06.240 16661-16675 com.example.app         com.example.app                      W  ApkAssets: Deleting an ApkAssets object '<empty> and /data/app/~~M2ZAYrR86KdCUcSCEiHt6g==/com.google.android.webview--NeMGNbAsSEBT0N7j4uqLQ==/base.apk' with 1 weak references
2024-07-04 12:47:06.240 16661-16675 com.example.app         com.example.app                      W  ApkAssets: Deleting an ApkAssets object '<empty> and /data/app/~~M2ZAYrR86KdCUcSCEiHt6g==/com.google.android.webview--NeMGNbAsSEBT0N7j4uqLQ==/split_config.de.apk' with 1 weak references
2024-07-04 12:47:06.240 16661-16675 com.example.app         com.example.app                      W  ApkAssets: Deleting an ApkAssets object '<empty> and /data/app/~~M2ZAYrR86KdCUcSCEiHt6g==/com.google.android.webview--NeMGNbAsSEBT0N7j4uqLQ==/split_config.en.apk' with 1 weak references
2024-07-04 12:47:06.430 16661-16827 Capacitor               com.example.app                      D  Handling local request: https://localhost/tabs/tab1
2024-07-04 12:47:06.432 16661-16828 Capacitor               com.example.app                      D  Handling local request: https://localhost/styles.d2b228d0a7e34779.css