Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to test with StoreKitConfiguration file OR TestFlight after 4.14.0 #3040

Open
10 of 12 tasks
nkanetka opened this issue Aug 17, 2023 · 9 comments
Open
10 of 12 tasks
Labels
bug status: waiting-for-reply Issues that are waiting for a reply

Comments

@nkanetka
Copy link

nkanetka commented Aug 17, 2023

Describe the bug
A weird bug started appearing for us after we upgraded the RC iOS SDK from 4.6.1. Initially we noticed we were unable to test sandbox purchases with TestFlight builds. We figured this was just a bug on Apple's end and tried testing with our StoreKitConfiguration file that we have. We have an introductory offer in the StoreKitConfiguration file and that isn't appearing. Additionally, when you make a purchase with the configuration file it gives you an error that, We are unable to process your subscription at this time. Please try again later!". I went through the different SDK versions and determined that the configuration file last works with 4.14.0 (though we have another issue seemingly related to the SDK where CI breaks with that build when running unit tests).

  1. Environment
    1. Platform: iOS
    2. SDK version: 4.21.1 (but tried with 4.25.4)
    3. StoreKit version:
      • StoreKit 1
      • StoreKit 2 (enabled with usesStoreKit2IfAvailable(true))
    4. OS version: 16.4
    5. Xcode version: 14.3.1
    6. Device and/or simulator:
      • Device
      • Simulator
    7. Environment:
      • Sandbox
      • TestFight
      • Production
    8. How widespread is the issue. Percentage of devices affected. 100%
  2. Debug logs that reproduce the issue. Complete logs with Purchases.logLevel = .verbose will help us debug this issue.
2023-08-17 12:06:11.054265-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Looks like you're using a legacy API key.
This is still supported, but it's recommended to migrate to using platform-specific API key, which should look like 'appl_1a2b3c4d5e6f7h'.
See https://rev.cat/auth for more details.
2023-08-17 12:06:11.054523-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Configuring SDK using UserDefaults.standard because we found existing data in it.
2023-08-17 12:06:11.055875-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: 👤 Identifying App User ID
2023-08-17 12:06:11.057493-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Debug logging enabled
2023-08-17 12:06:11.057590-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ SDK Version - 4.21.1
2023-08-17 12:06:11.057674-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Bundle ID - com.checkitt.development
2023-08-17 12:06:11.057789-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ System Version - Version 16.4 (Build 20E247)
2023-08-17 12:06:11.057843-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Using a simulator. Ensure you have a StoreKit Config file set up before trying to fetch products or make purchases.
See https://errors.rev.cat/testing-in-simulator for more details.
2023-08-17 12:06:11.057891-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: 👤 No initial App User ID
2023-08-17 12:06:11.061547-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $idfa
2023-08-17 12:06:11.062085-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Attribute set locally: [SubscriberAttribute] key: $idfa value: 00000000-0000-0000-0000-000000000000 setTime: 2023-08-17 16:06:11 +0000. It will be synced to the backend when the app backgrounds/foregrounds or when a purchase is made.
2023-08-17 12:06:11.062523-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $idfv
2023-08-17 12:06:11.062667-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Attribute set locally: [SubscriberAttribute] key: $idfv value: 95FCF14F-6143-4C13-8A1B-558D130840CB setTime: 2023-08-17 16:06:11 +0000. It will be synced to the backend when the app backgrounds/foregrounds or when a purchase is made.
2023-08-17 12:06:11.063005-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $ip
2023-08-17 12:06:11.063151-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Attribute set locally: [SubscriberAttribute] key: $ip value: true setTime: 2023-08-17 16:06:11 +0000. It will be synced to the backend when the app backgrounds/foregrounds or when a purchase is made.
2023-08-17 12:06:11.064057-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $idfa
2023-08-17 12:06:11.064161-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $idfv
2023-08-17 12:06:11.064242-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $ip
2023-08-17 12:06:11.064303-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $fbAnonId
2023-08-17 12:06:11.064377-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Attribute set locally: [SubscriberAttribute] key: $fbAnonId value: XZ6B908AA6-A2F4-4214-818F-0371A553412F setTime: 2023-08-17 16:06:11 +0000. It will be synced to the backend when the app backgrounds/foregrounds or when a purchase is made.
2023-08-17 12:06:11.065205-0400 Ground News α[43738:13759165] [Purchases] - WARN: 🍎‼️ AdServices attribution token is not available in the simulator
2023-08-17 12:06:11.065468-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ No cached Offerings, fetching from network
2023-08-17 12:06:11.178955-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Offerings cache is stale, updating from network in foreground
2023-08-17 12:06:11.178956-0400 Ground News α[43738:13759253] [Purchases] - DEBUG: ℹ️ Offerings cache is stale, updating from network in foreground
2023-08-17 12:06:11.179920-0400 Ground News α[43738:13759253] [Purchases] - DEBUG: ℹ️ Network operation 'GetOfferingsOperation' found with the same cache key 'GetOfferingsOpe...'. Skipping request.
2023-08-17 12:06:11.179929-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Started
2023-08-17 12:06:11.180108-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/$RCAnonymousID%3A80cf66e2e2ca49cca64c16c5f318bc26/offerings
2023-08-17 12:06:11.183985-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/$RCAnonymousID:80cf66e2e2ca49cca64c16c5f318bc26/offerings
2023-08-17 12:06:11.203895-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive
2023-08-17 12:06:11.204190-0400 Ground News α[43738:13759165] [Purchases] - WARN: 🍎‼️ AdServices attribution token is not available in the simulator
2023-08-17 12:06:11.208926-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Offerings cache is stale, updating from network in foreground
2023-08-17 12:06:11.209149-0400 Ground News α[43738:13759260] [Purchases] - DEBUG: ℹ️ Network operation 'GetOfferingsOperation' found with the same cache key 'GetOfferingsOpe...'. Skipping request.
2023-08-17 12:06:11.390637-0400 Ground News α[43738:13759257]  - <AppMeasurement>[I-ACS036001] Analytics screen reporting is disabled. UIViewController transitions will not be logged.
2023-08-17 12:06:11.438291-0400 Ground News α[43738:13759253] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/$RCAnonymousID:80cf66e2e2ca49cca64c16c5f318bc26/offerings (304)
2023-08-17 12:06:11.440029-0400 Ground News α[43738:13759253] [Purchases] - DEBUG: ℹ️ No existing products cached, starting store products request for: ["com.groundnews.ios.yearly.pro", "com.groundnews.ios.yearly.premium", "com.groundnews.ios.monthly.premium", "com.groundnews.ios.yearly.vantage", "com.groundnews.ios.monthly.pro"]
2023-08-17 12:06:11.440174-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: ℹ️ No existing products cached, starting store products request for: ["com.groundnews.ios.yearly.pro", "com.groundnews.ios.yearly.premium", "com.groundnews.ios.monthly.premium", "com.groundnews.ios.yearly.vantage", "com.groundnews.ios.monthly.pro"]
2023-08-17 12:06:11.440184-0400 Ground News α[43738:13759253] [Purchases] - DEBUG: ℹ️ Found an existing request for products: ["com.groundnews.ios.monthly.pro", "com.groundnews.ios.monthly.premium", "com.groundnews.ios.yearly.pro", "com.groundnews.ios.yearly.premium", "com.groundnews.ios.yearly.vantage"], appending to completion
2023-08-17 12:06:11.440281-0400 Ground News α[43738:13759253] [Purchases] - DEBUG: ℹ️ Found an existing request for products: ["com.groundnews.ios.monthly.premium", "com.groundnews.ios.yearly.vantage", "com.groundnews.ios.yearly.premium", "com.groundnews.ios.yearly.pro", "com.groundnews.ios.monthly.pro"], appending to completion
2023-08-17 12:06:11.440358-0400 Ground News α[43738:13759253] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Finished
2023-08-17 12:06:11.440528-0400 Ground News α[43738:13759253] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/$RCAnonymousID%3A80cf66e2e2ca49cca64c16c5f318bc26/offerings, 0 requests left in the queue
2023-08-17 12:06:11.440582-0400 Ground News α[43738:13759274] [Purchases] - DEBUG: ℹ️ PostSubscriberAttributesOperation: Started
2023-08-17 12:06:11.440687-0400 Ground News α[43738:13759274] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST subscribers/$RCAnonymousID%3A80cf66e2e2ca49cca64c16c5f318bc26/attributes
2023-08-17 12:06:11.442578-0400 Ground News α[43738:13759274] [Purchases] - DEBUG: ℹ️ API request started: POST /v1/subscribers/$RCAnonymousID:80cf66e2e2ca49cca64c16c5f318bc26/attributes
2023-08-17 12:06:11.500748-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: 😻 Store products request finished
2023-08-17 12:06:11.500773-0400 Ground News α[43738:13759274] [Purchases] - DEBUG: 😻 Store products request received response
2023-08-17 12:06:11.500944-0400 Ground News α[43738:13759274] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.yearly.pro
2023-08-17 12:06:11.501008-0400 Ground News α[43738:13759274] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.yearly.vantage
2023-08-17 12:06:11.501116-0400 Ground News α[43738:13759274] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.monthly.premium
2023-08-17 12:06:11.501284-0400 Ground News α[43738:13759274] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.yearly.premium
2023-08-17 12:06:11.501545-0400 Ground News α[43738:13759274] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.monthly.pro
2023-08-17 12:06:11.502482-0400 Ground News α[43738:13759274] [Purchases] - WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with  identifier supporter. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used). 
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings. 
More information: https://rev.cat/why-are-offerings-empty
2023-08-17 12:06:11.502596-0400 Ground News α[43738:13759274] [Purchases] - DEBUG: 😻 Offerings updated from network.
2023-08-17 12:06:11.503907-0400 Ground News α[43738:13759274] [Purchases] - WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with  identifier supporter. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used). 
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings. 
More information: https://rev.cat/why-are-offerings-empty
2023-08-17 12:06:11.504011-0400 Ground News α[43738:13759274] [Purchases] - DEBUG: 😻 Offerings updated from network.
2023-08-17 12:06:11.504196-0400 Ground News α[43738:13759274] [Purchases] - WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with  identifier supporter. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used). 
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings. 
More information: https://rev.cat/why-are-offerings-empty
2023-08-17 12:06:11.504256-0400 Ground News α[43738:13759274] [Purchases] - DEBUG: 😻 Offerings updated from network.
2023-08-17 12:06:11.511478-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Loaded receipt from url file:///Users/nehalkanetkar/Library/Developer/CoreSimulator/Devices/7C974F3D-22A2-4D1C-BAA8-479F13C9B4A1/data/Containers/Data/Application/EC0D06A7-7B43-4163-929B-907DE6FB62F0/StoreKit/receipt
2023-08-17 12:06:11.511588-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Attempting to check intro eligibility locally
2023-08-17 12:06:11.511749-0400 Ground News α[43738:13759165] [Purchases] - INFO: ℹ️ Parsing receipt
2023-08-17 12:06:11.586626-0400 Ground News α[43738:13759165] [Purchases] - INFO: ℹ️ Receipt parsed successfully
2023-08-17 12:06:11.596227-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Checking intro eligibility locally from receipt: {
  "opaque_value" : "Hu7v\/wQAAAA=",
  "sha1_hash" : "KuGAcgAwT06cJAbeUv5wsfEpuWU=",
  "bundle_id" : "com.checkitt.development",
  "in_app_purchases" : [
    {
      "product_id" : "com.groundnews.ios.monthly.premium",
      "quantity" : 1,
      "transaction_id" : "293",
      "is_in_intro_offer_period" : false,
      "expires_date" : "2023-08-15T19:58:46Z",
      "original_purchase_date" : "2023-08-15T19:15:29Z",
      "original_transaction_id" : "0",
      "product_type" : -1,
      "purchase_date" : "2023-08-15T19:58:44Z"
    },
    {
      "product_id" : "com.groundnews.ios.yearly.premium",
      "quantity" : 1,
      "transaction_id" : "64",
      "is_in_intro_offer_period" : false,
      "expires_date" : "2023-08-15T19:18:38Z",
      "original_purchase_date" : "2023-08-15T19:15:29Z",
      "original_transaction_id" : "0",
      "product_type" : -1,
      "purchase_date" : "2023-08-15T19:18:36Z"
    },
    {
      "product_id
2023-08-17 12:06:11.597166-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Skipping products request for these products because they were already cached: ["com.groundnews.ios.yearly.premium", "com.groundnews.ios.monthly.premium"]
2023-08-17 12:06:11.597886-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Local intro eligibility computed locally. Result: ["com.groundnews.ios.monthly.premium": IntroEligibilityStatus.ineligible, "com.groundnews.ios.yearly.premium": IntroEligibilityStatus.ineligible]
2023-08-17 12:06:11.597989-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Caching trial or intro eligibility for products: ["com.groundnews.ios.yearly.premium", "com.groundnews.ios.monthly.premium"]
2023-08-17 12:06:11.633925-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: ℹ️ API request completed: POST /v1/subscribers/$RCAnonymousID:80cf66e2e2ca49cca64c16c5f318bc26/attributes (200)
2023-08-17 12:06:11.634565-0400 Ground News α[43738:13759252] [Purchases] - INFO: ℹ️ Marking attributes as synced for App User ID: $RCAnonymousID:80cf66e2e2ca49cca64c16c5f318bc26:
 attributes: ["$ip": [SubscriberAttribute] key: $ip value: true setTime: 2023-08-17 16:06:11 +0000, "$idfa": [SubscriberAttribute] key: $idfa value: 00000000-0000-0000-0000-000000000000 setTime: 2023-08-17 16:06:11 +0000, "$idfv": [SubscriberAttribute] key: $idfv value: 95FCF14F-6143-4C13-8A1B-558D130840CB setTime: 2023-08-17 16:06:11 +0000, "$fbAnonId": [SubscriberAttribute] key: $fbAnonId value: XZ6B908AA6-A2F4-4214-818F-0371A553412F setTime: 2023-08-17 16:06:11 +0000]
2023-08-17 12:06:11.634687-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: ℹ️ Found 4 unsynced attributes for App User ID: $RCAnonymousID:80cf66e2e2ca49cca64c16c5f318bc26
2023-08-17 12:06:11.634756-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: ℹ️ Unsynced attributes: ["$fbAnonId": [SubscriberAttribute] key: $fbAnonId value: XZ6B908AA6-A2F4-4214-818F-0371A553412F setTime: 2023-08-17 16:06:11 +0000, "$idfa": [SubscriberAttribute] key: $idfa value: 00000000-0000-0000-0000-000000000000 setTime: 2023-08-17 16:06:11 +0000, "$idfv": [SubscriberAttribute] key: $idfv value: 95FCF14F-6143-4C13-8A1B-558D130840CB setTime: 2023-08-17 16:06:11 +0000, "$ip": [SubscriberAttribute] key: $ip value: true setTime: 2023-08-17 16:06:11 +0000]
2023-08-17 12:06:11.635338-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: 😻 Subscriber attributes synced successfully for App User ID: $RCAnonymousID:80cf66e2e2ca49cca64c16c5f318bc26
2023-08-17 12:06:11.635423-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: ℹ️ PostSubscriberAttributesOperation: Finished
2023-08-17 12:06:11.635541-0400 Ground News α[43738:13759252] [Purchases] - DEBUG: ℹ️ Serial request done: POST subscribers/$RCAnonymousID%3A80cf66e2e2ca49cca64c16c5f318bc26/attributes, 0 requests left in the queue
2023-08-17 12:06:11.635553-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ GetCustomerInfoOperation: Started
2023-08-17 12:06:11.635664-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/$RCAnonymousID%3A80cf66e2e2ca49cca64c16c5f318bc26
2023-08-17 12:06:11.636317-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/$RCAnonymousID:80cf66e2e2ca49cca64c16c5f318bc26
2023-08-17 12:06:11.697839-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/$RCAnonymousID:80cf66e2e2ca49cca64c16c5f318bc26 (304)
2023-08-17 12:06:11.700993-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ Sending latest CustomerInfo to delegate.
2023-08-17 12:06:11.701072-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: 😻 CustomerInfo updated from network.
2023-08-17 12:06:11.701101-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Detected active subscriptions changed. Clearing trial or intro eligibility cache.
2023-08-17 12:06:11.701169-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ PurchasedProductsFetcher: invalidating cache
2023-08-17 12:06:11.701176-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ GetCustomerInfoOperation: Finished
2023-08-17 12:06:11.701263-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/$RCAnonymousID%3A80cf66e2e2ca49cca64c16c5f318bc26, 0 requests left in the queue
2023-08-17 12:06:40.726648-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Looks like you're using a legacy API key.
This is still supported, but it's recommended to migrate to using platform-specific API key, which should look like 'appl_1a2b3c4d5e6f7h'.
See https://rev.cat/auth for more details.
2023-08-17 12:06:40.727005-0400 Ground News α[43738:13759165] [Purchases] - INFO: ℹ️ Purchases instance already set. Did you mean to configure two Purchases objects?
2023-08-17 12:06:40.728150-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Configuring SDK using UserDefaults.standard because we found existing data in it.
2023-08-17 12:06:40.728512-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: 👤 Identifying App User ID
2023-08-17 12:06:40.731150-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Debug logging enabled
2023-08-17 12:06:40.731262-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ SDK Version - 4.21.1
2023-08-17 12:06:40.731349-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Bundle ID - com.checkitt.development
2023-08-17 12:06:40.731433-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ System Version - Version 16.4 (Build 20E247)
2023-08-17 12:06:40.731517-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Using a simulator. Ensure you have a StoreKit Config file set up before trying to fetch products or make purchases.
See https://errors.rev.cat/testing-in-simulator for more details.
2023-08-17 12:06:40.731606-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: 👤 Initial App User ID set
2023-08-17 12:06:40.732007-0400 Ground News α[43738:13759816] [Purchases] - WARN: ⚠️ The appUserID passed to logIn is the same as the one already cached. No action will be taken.
2023-08-17 12:06:40.745095-0400 Ground News α[43738:13759816] [Purchases] - DEBUG: ℹ️ Offerings cache is stale, updating from network in foreground
2023-08-17 12:06:40.745130-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ CustomerInfo cache is stale, updating from network in foreground.
2023-08-17 12:06:40.745354-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Started
2023-08-17 12:06:40.745542-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/2459090/offerings
2023-08-17 12:06:40.746295-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/2459090/offerings
2023-08-17 12:06:40.847691-0400 Ground News α[43738:13759831] [Purchases] - DEBUG: ℹ️ Network operation 'GetCustomerInfoOperation' found with the same cache key 'GetCustomerInfo...'. Skipping request.
2023-08-17 12:06:40.945408-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/2459090/offerings (200)
2023-08-17 12:06:40.945723-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ No existing products cached, starting store products request for: ["com.groundnews.ios.yearly.pro", "com.groundnews.ios.yearly.premium", "com.groundnews.ios.monthly.pro", "com.groundnews.ios.monthly.premium", "com.groundnews.ios.yearly.vantage"]
2023-08-17 12:06:40.945819-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Finished
2023-08-17 12:06:40.945865-0400 Ground News α[43738:13759831] [Purchases] - DEBUG: ℹ️ No existing products cached, starting store products request for: ["com.groundnews.ios.yearly.pro", "com.groundnews.ios.yearly.premium", "com.groundnews.ios.monthly.pro", "com.groundnews.ios.monthly.premium", "com.groundnews.ios.yearly.vantage"]
2023-08-17 12:06:40.945916-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/2459090/offerings, 0 requests left in the queue
2023-08-17 12:06:40.945943-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ GetCustomerInfoOperation: Started
2023-08-17 12:06:40.946036-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/2459090
2023-08-17 12:06:40.946725-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/2459090
2023-08-17 12:06:41.008607-0400 Ground News α[43738:13759831] [Purchases] - DEBUG: 😻 Store products request finished
2023-08-17 12:06:41.008608-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: 😻 Store products request received response
2023-08-17 12:06:41.008737-0400 Ground News α[43738:13759272] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.yearly.pro
2023-08-17 12:06:41.008803-0400 Ground News α[43738:13759272] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.monthly.pro
2023-08-17 12:06:41.008874-0400 Ground News α[43738:13759272] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.monthly.premium
2023-08-17 12:06:41.008961-0400 Ground News α[43738:13759272] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.yearly.premium
2023-08-17 12:06:41.009439-0400 Ground News α[43738:13759272] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.yearly.vantage
2023-08-17 12:06:41.009566-0400 Ground News α[43738:13759272] [Purchases] - WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with  identifier supporter. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used). 
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings. 
More information: https://rev.cat/why-are-offerings-empty
2023-08-17 12:06:41.009625-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: 😻 Offerings updated from network.
2023-08-17 12:06:41.103111-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/2459090 (201)
2023-08-17 12:06:41.104490-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ Sending latest CustomerInfo to delegate.
2023-08-17 12:06:41.104572-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: 😻 CustomerInfo updated from network.
2023-08-17 12:06:41.104604-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Detected active subscriptions changed. Clearing trial or intro eligibility cache.
2023-08-17 12:06:41.104683-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ PurchasedProductsFetcher: invalidating cache
2023-08-17 12:06:41.105055-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: 😻 CustomerInfo updated from network.
2023-08-17 12:06:41.105127-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ GetCustomerInfoOperation: Finished
2023-08-17 12:06:41.105182-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $displayName
2023-08-17 12:06:41.105225-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/2459090, 0 requests left in the queue
2023-08-17 12:06:41.105339-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Attribute set locally: [SubscriberAttribute] key: $displayName value: Guest setTime: 2023-08-17 16:06:41 +0000. It will be synced to the backend when the app backgrounds/foregrounds or when a purchase is made.
2023-08-17 12:06:41.105762-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting values for attributes: ["UI", "username", "subscriptionStatus"]
2023-08-17 12:06:41.114965-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Attribute set locally: [SubscriberAttribute] key: UI value: 2459090 setTime: 2023-08-17 16:06:41 +0000. It will be synced to the backend when the app backgrounds/foregrounds or when a purchase is made.
2023-08-17 12:06:41.115478-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Attribute set locally: [SubscriberAttribute] key: username value: Guest setTime: 2023-08-17 16:06:41 +0000. It will be synced to the backend when the app backgrounds/foregrounds or when a purchase is made.
2023-08-17 12:06:41.115910-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Attribute set locally: [SubscriberAttribute] key: subscriptionStatus value: free setTime: 2023-08-17 16:06:41 +0000. It will be synced to the backend when the app backgrounds/foregrounds or when a purchase is made.
2023-08-17 12:06:41.137426-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Offerings cache is stale, updating from network in foreground
2023-08-17 12:06:41.137602-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Started
2023-08-17 12:06:41.137688-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/2459090/offerings
2023-08-17 12:06:41.138334-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/2459090/offerings
2023-08-17 12:06:41.202486-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/2459090/offerings (200)
2023-08-17 12:06:41.202810-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: ℹ️ Skipping products request for these products because they were already cached: ["com.groundnews.ios.yearly.premium", "com.groundnews.ios.yearly.vantage", "com.groundnews.ios.monthly.premium", "com.groundnews.ios.monthly.pro", "com.groundnews.ios.yearly.pro"]
2023-08-17 12:06:41.202932-0400 Ground News α[43738:13759850] [Purchases] - WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with  identifier supporter. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used). 
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings. 
More information: https://rev.cat/why-are-offerings-empty
2023-08-17 12:06:41.203960-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: 😻 Offerings updated from network.
2023-08-17 12:06:41.204172-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Finished
2023-08-17 12:06:41.204279-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/2459090/offerings, 0 requests left in the queue
2023-08-17 12:06:44.803959-0400 Ground News α[43738:13759818] ERROR: apiKey cannot be nil or empty, set apiKey with initializeApiKey: before calling logEvent
2023-08-17 12:06:45.043796-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Looks like you're using a legacy API key.
This is still supported, but it's recommended to migrate to using platform-specific API key, which should look like 'appl_1a2b3c4d5e6f7h'.
See https://rev.cat/auth for more details.
2023-08-17 12:06:45.044461-0400 Ground News α[43738:13759165] [Purchases] - INFO: ℹ️ Purchases instance already set. Did you mean to configure two Purchases objects?
2023-08-17 12:06:45.046178-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Configuring SDK using UserDefaults.standard because we found existing data in it.
2023-08-17 12:06:45.046916-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: 👤 Identifying App User ID
2023-08-17 12:06:45.050163-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Debug logging enabled
2023-08-17 12:06:45.050285-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ SDK Version - 4.21.1
2023-08-17 12:06:45.050358-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Bundle ID - com.checkitt.development
2023-08-17 12:06:45.050453-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ System Version - Version 16.4 (Build 20E247)
2023-08-17 12:06:45.050530-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Using a simulator. Ensure you have a StoreKit Config file set up before trying to fetch products or make purchases.
See https://errors.rev.cat/testing-in-simulator for more details.
2023-08-17 12:06:45.050783-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: 👤 Initial App User ID set
2023-08-17 12:06:45.051080-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $displayName
2023-08-17 12:06:45.051274-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting values for attributes: ["UI", "username", "subscriptionStatus"]
2023-08-17 12:06:45.157029-0400 Ground News α[43738:13759849] [Purchases] - DEBUG: ℹ️ Offerings cache is stale, updating from network in foreground
2023-08-17 12:06:45.157172-0400 Ground News α[43738:13759849] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Started
2023-08-17 12:06:45.157280-0400 Ground News α[43738:13759849] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/2459090/offerings
2023-08-17 12:06:45.157854-0400 Ground News α[43738:13759849] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/2459090/offerings
2023-08-17 12:06:45.385454-0400 Ground News α[43738:13759816] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/2459090/offerings (304)
2023-08-17 12:06:45.385783-0400 Ground News α[43738:13759816] [Purchases] - DEBUG: ℹ️ No existing products cached, starting store products request for: ["com.groundnews.ios.yearly.vantage", "com.groundnews.ios.monthly.premium", "com.groundnews.ios.monthly.pro", "com.groundnews.ios.yearly.pro", "com.groundnews.ios.yearly.premium"]
2023-08-17 12:06:45.385871-0400 Ground News α[43738:13759816] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Finished
2023-08-17 12:06:45.385918-0400 Ground News α[43738:13759849] [Purchases] - DEBUG: ℹ️ No existing products cached, starting store products request for: ["com.groundnews.ios.yearly.vantage", "com.groundnews.ios.monthly.premium", "com.groundnews.ios.monthly.pro", "com.groundnews.ios.yearly.pro", "com.groundnews.ios.yearly.premium"]
2023-08-17 12:06:45.385977-0400 Ground News α[43738:13759816] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/2459090/offerings, 0 requests left in the queue
2023-08-17 12:06:45.386005-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ GetCustomerInfoOperation: Started
2023-08-17 12:06:45.386166-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/2459090
2023-08-17 12:06:45.387001-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/2459090
2023-08-17 12:06:45.434997-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/2459090 (304)
2023-08-17 12:06:45.435956-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ Sending latest CustomerInfo to delegate.
2023-08-17 12:06:45.436029-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: 😻 CustomerInfo updated from network.
2023-08-17 12:06:45.436039-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Detected active subscriptions changed. Clearing trial or intro eligibility cache.
2023-08-17 12:06:45.436092-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ PurchasedProductsFetcher: invalidating cache
2023-08-17 12:06:45.436100-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ GetCustomerInfoOperation: Finished
2023-08-17 12:06:45.436174-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/2459090, 0 requests left in the queue
2023-08-17 12:06:45.451277-0400 Ground News α[43738:13759816] [Purchases] - DEBUG: 😻 Store products request received response
2023-08-17 12:06:45.451276-0400 Ground News α[43738:13759819] [Purchases] - DEBUG: 😻 Store products request finished
2023-08-17 12:06:45.451415-0400 Ground News α[43738:13759816] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.monthly.premium
2023-08-17 12:06:45.451503-0400 Ground News α[43738:13759816] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.yearly.pro
2023-08-17 12:06:45.451555-0400 Ground News α[43738:13759816] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.yearly.premium
2023-08-17 12:06:45.451677-0400 Ground News α[43738:13759816] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.monthly.pro
2023-08-17 12:06:45.451847-0400 Ground News α[43738:13759816] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.yearly.vantage
2023-08-17 12:06:45.452057-0400 Ground News α[43738:13759816] [Purchases] - WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with  identifier supporter. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used). 
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings. 
More information: https://rev.cat/why-are-offerings-empty
2023-08-17 12:06:45.452181-0400 Ground News α[43738:13759816] [Purchases] - DEBUG: 😻 Offerings updated from network.
2023-08-17 12:06:46.351083-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $displayName
2023-08-17 12:06:46.351279-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting values for attributes: ["username", "subscriptionStatus", "UI"]
2023-08-17 12:06:49.553877-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $displayName
2023-08-17 12:06:49.554561-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting reserved attribute: $apnsTokens
2023-08-17 12:06:49.554735-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Attribute set locally: [SubscriberAttribute] key: $apnsTokens value: 6365767a394c6d5931454874764b754f4461567239373a415041393162456e6a77576b43386b5a58706e77373979666a556c525678646b65344441325970466c615f6b584b307a794e2d4c4d473477615847317752477a776c4966313069364c6f3467624e2d623861415264305f69466279774259364f4942744268444469667a4c66574c5646774c413441744c472d744f4f5345673550714a4a4942465a61387539 setTime: 2023-08-17 16:06:49 +0000. It will be synced to the backend when the app backgrounds/foregrounds or when a purchase is made.
2023-08-17 12:06:49.555872-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ setting values for attributes: ["UI", "username", "subscriptionStatus"]
2023-08-17 12:06:53.953643-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Vending Offerings from memory cache
2023-08-17 12:06:57.464962-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ PostSubscriberAttributesOperation: Started
2023-08-17 12:06:57.465270-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST subscribers/2459090/attributes
2023-08-17 12:06:57.466885-0400 Ground News α[43738:13759272] [Purchases] - DEBUG: ℹ️ API request started: POST /v1/subscribers/2459090/attributes
2023-08-17 12:06:57.576837-0400 Ground News α[43738:13759818] [Purchases] - DEBUG: ℹ️ API request completed: POST /v1/subscribers/2459090/attributes (200)
2023-08-17 12:06:57.577244-0400 Ground News α[43738:13759818] [Purchases] - INFO: ℹ️ Marking attributes as synced for App User ID: 2459090:
 attributes: ["$displayName": [SubscriberAttribute] key: $displayName value: Guest setTime: 2023-08-17 16:06:41 +0000, "subscriptionStatus": [SubscriberAttribute] key: subscriptionStatus value: free setTime: 2023-08-17 16:06:41 +0000, "username": [SubscriberAttribute] key: username value: Guest setTime: 2023-08-17 16:06:41 +0000, "$apnsTokens": [SubscriberAttribute] key: $apnsTokens value: 6365767a394c6d5931454874764b754f4461567239373a415041393162456e6a77576b43386b5a58706e77373979666a556c525678646b65344441325970466c615f6b584b307a794e2d4c4d473477615847317752477a776c4966313069364c6f3467624e2d623861415264305f69466279774259364f4942744268444469667a4c66574c5646774c413441744c472d744f4f5345673550714a4a4942465a61387539 setTime: 2023-08-17 16:06:49 +0000, "UI": [SubscriberAttribute] key: UI value: 2459090 setTime: 2023-08-17 16:06:41 +0000]
2023-08-17 12:06:57.577514-0400 Ground News α[43738:13759818] [Purchases] - DEBUG: ℹ️ Found 5 unsynced attributes for App User ID: 2459090
2023-08-17 12:06:57.594294-0400 Ground News α[43738:13759818] [Purchases] - DEBUG: ℹ️ Unsynced attributes: ["$apnsTokens": [SubscriberAttribute] key: $apnsTokens value: 6365767a394c6d5931454874764b754f4461567239373a415041393162456e6a77576b43386b5a58706e77373979666a556c525678646b65344441325970466c615f6b584b307a794e2d4c4d473477615847317752477a776c4966313069364c6f3467624e2d623861415264305f69466279774259364f4942744268444469667a4c66574c5646774c413441744c472d744f4f5345673550714a4a4942465a61387539 setTime: 2023-08-17 16:06:49 +0000, "username": [SubscriberAttribute] key: username value: Guest setTime: 2023-08-17 16:06:41 +0000, "subscriptionStatus": [SubscriberAttribute] key: subscriptionStatus value: free setTime: 2023-08-17 16:06:41 +0000, "UI": [SubscriberAttribute] key: UI value: 2459090 setTime: 2023-08-17 16:06:41 +0000, "$displayName": [SubscriberAttribute] key: $displayName value: Guest setTime: 2023-08-17 16:06:41 +0000]
2023-08-17 12:06:57.596672-0400 Ground News α[43738:13759818] [Purchases] - DEBUG: 😻 Subscriber attributes synced successfully for App User ID: 2459090
2023-08-17 12:06:57.596895-0400 Ground News α[43738:13759818] [Purchases] - WARN: ⚠️ The appUserID passed to logIn is the same as the one already cached. No action will be taken.
2023-08-17 12:06:57.598197-0400 Ground News α[43738:13759818] [Purchases] - DEBUG: ℹ️ Vending CustomerInfo from cache.
2023-08-17 12:06:57.598399-0400 Ground News α[43738:13759818] [Purchases] - DEBUG: ℹ️ PostSubscriberAttributesOperation: Finished
2023-08-17 12:06:57.598542-0400 Ground News α[43738:13759165] [Purchases] - INFO: 💰 Purchasing Product 'com.groundnews.ios.yearly.premium' from package in Offering 'premium'
2023-08-17 12:06:57.598715-0400 Ground News α[43738:13759818] [Purchases] - DEBUG: ℹ️ Serial request done: POST subscribers/2459090/attributes, 0 requests left in the queue
2023-08-17 12:06:57.601669-0400 Ground News α[43738:13759165] [Purchases] - WARN: ⚠️ Empty Product titles are not supported. Found in product with identifier: com.groundnews.ios.yearly.premium
2023-08-17 12:06:57.602021-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Adding payment for product 'com.groundnews.ios.yearly.premium'. 0 transactions already in the queue.
2023-08-17 12:06:57.604966-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Offerings cache is stale, updating from network in foreground
2023-08-17 12:06:57.605006-0400 Ground News α[43738:13759848] [Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000600002c1b5a0) updatedTransaction: com.groundnews.ios.yearly.premium 0
2023-08-17 12:06:57.605265-0400 Ground News α[43738:13759848] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Started
2023-08-17 12:06:57.605436-0400 Ground News α[43738:13759848] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET subscribers/2459090/offerings
2023-08-17 12:06:57.607517-0400 Ground News α[43738:13759848] [Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/2459090/offerings
2023-08-17 12:06:57.659428-0400 Ground News α[43738:13759848] [Purchases] - DEBUG: ℹ️ API request completed: GET /v1/subscribers/2459090/offerings (304)
2023-08-17 12:06:57.659680-0400 Ground News α[43738:13759848] [Purchases] - DEBUG: ℹ️ Skipping products request for these products because they were already cached: ["com.groundnews.ios.monthly.premium", "com.groundnews.ios.monthly.pro", "com.groundnews.ios.yearly.premium", "com.groundnews.ios.yearly.pro", "com.groundnews.ios.yearly.vantage"]
2023-08-17 12:06:57.659785-0400 Ground News α[43738:13759848] [Purchases] - WARN: ⚠️ There's a problem with your configuration. No packages could be found for offering with  identifier supporter. This could be due to Products not being configured correctly in the RevenueCat dashboard, App Store Connect (or the StoreKit Configuration file if one is being used). 
To configure products, follow the instructions in https://rev.cat/how-to-configure-offerings. 
More information: https://rev.cat/why-are-offerings-empty
2023-08-17 12:06:57.659902-0400 Ground News α[43738:13759848] [Purchases] - DEBUG: 😻 Offerings updated from network.
2023-08-17 12:06:57.660090-0400 Ground News α[43738:13759848] [Purchases] - DEBUG: ℹ️ GetOfferingsOperation: Finished
2023-08-17 12:06:57.660172-0400 Ground News α[43738:13759848] [Purchases] - DEBUG: ℹ️ Serial request done: GET subscribers/2459090/offerings, 0 requests left in the queue
2023-08-17 12:07:02.969132-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive
2023-08-17 12:07:05.073984-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ applicationDidBecomeActive
2023-08-17 12:07:05.082864-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000600002c1b5a0) updatedTransaction: com.groundnews.ios.yearly.premium 0 1
2023-08-17 12:07:05.091101-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ Found 0 unsynced attributes for App User ID: 2459090
2023-08-17 12:07:05.091302-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ Force refreshing the receipt to get latest transactions from Apple.
2023-08-17 12:07:05.091408-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest started
2023-08-17 12:07:05.113987-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest finished
2023-08-17 12:07:05.114296-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Loaded receipt from url file:///Users/nehalkanetkar/Library/Developer/CoreSimulator/Devices/7C974F3D-22A2-4D1C-BAA8-479F13C9B4A1/data/Containers/Data/Application/EC0D06A7-7B43-4163-929B-907DE6FB62F0/StoreKit/receipt
2023-08-17 12:07:05.114441-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Skipping products request for these products because they were already cached: ["com.groundnews.ios.yearly.premium"]
2023-08-17 12:07:05.115554-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Started
2023-08-17 12:07:05.115723-0400 Ground News α[43738:13760290] [Purchases] - INFO: ℹ️ Parsing receipt
2023-08-17 12:07:05.116466-0400 Ground News α[43738:13760290] [Purchases] - INFO: ℹ️ Receipt parsed successfully
2023-08-17 12:07:05.116642-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Posting receipt (note: the contents might not be up-to-date, but it will be refreshed with Apple's servers):
{"opaque_value":"uetX1wMAAAA=","sha1_hash":"34ChYr2\/7zkw+cNZaYx83oWtbXM=","bundle_id":"com.checkitt.development","in_app_purchases":[{"product_id":"com.groundnews.ios.yearly.premium","quantity":1,"transaction_id":"0","is_in_intro_offer_period":true,"expires_date":"2023-08-17T16:07:09Z","purchase_date":"2023-08-17T16:07:02Z","product_type":-1}],"application_version":"1","creation_date":"2023-08-17T16:07:05Z","expiration_date":"4001-01-01T00:00:00Z"}
2023-08-17 12:07:05.116715-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST receipts
2023-08-17 12:07:05.118018-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ API request started: POST /v1/receipts
2023-08-17 12:07:05.518583-0400 Ground News α[43738:13760290] [Purchases] - ERROR: 😿‼️ The receipt is not valid.
2023-08-17 12:07:05.520723-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ API request failed: POST /v1/receipts: The receipt is not valid.
2023-08-17 12:07:05.520979-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Finished
2023-08-17 12:07:05.521079-0400 Ground News α[43738:13759165] [Purchases] - INFO: 💰 Finishing transaction '0' for product 'com.groundnews.ios.yearly.premium'
2023-08-17 12:07:05.521208-0400 Ground News α[43738:13760290] [Purchases] - DEBUG: ℹ️ Serial request done: POST receipts, 0 requests left in the queue
2023-08-17 12:07:05.559308-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000600002c1b5a0) removedTransaction: com.groundnews.ios.yearly.premium 0 1
2023-08-17 12:07:05.560357-0400 Ground News α[43738:13759165] [Purchases] - ERROR: 😿‼️ The receipt is not valid.
2023-08-17 12:07:05.561323-0400 Ground News α[43738:13759165] [Purchases] - ERROR: 💰 Product purchase for 'com.groundnews.ios.yearly.premium' failed with error: Error Domain=RevenueCat.ErrorCode Code=8 "The receipt is not valid." UserInfo={NSUnderlyingError=0x600000469230 {Error Domain=RevenueCat.BackendErrorCode Code=7103 "The receipt is not valid." UserInfo={rc_backend_error_code=7103, NSLocalizedDescription=The receipt is not valid.}}, rc_backend_error_code=7103, NSLocalizedDescription=The receipt is not valid., source_function=parseUnsuccessfulResponse(), rc_response_status_code=400, readable_error_code=INVALID_RECEIPT, source_file=RevenueCat/HTTPClient.swift:528}
Event: subscribe_failed, ["product_id": "com.groundnews.ios.yearly.premium", "user_id": "2459090", "error": "The receipt is not valid."]
2023-08-17 12:07:11.501599-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000600002c1b5a0) updatedTransaction: com.groundnews.ios.yearly.premium 1 0 1
2023-08-17 12:07:11.505415-0400 Ground News α[43738:13760544] 10.10.0 - [FirebaseAnalytics][I-ACS023141] Purchase is a duplicate and will not be reported. Product ID: com.groundnews.ios.yearly.premium
2023-08-17 12:07:11.509377-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: ℹ️ Found 0 unsynced attributes for App User ID: 2459090
2023-08-17 12:07:11.509528-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: ℹ️ Force refreshing the receipt to get latest transactions from Apple.
2023-08-17 12:07:11.509627-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest started
2023-08-17 12:07:11.536842-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ SKReceiptRefreshRequest finished
2023-08-17 12:07:11.537121-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Loaded receipt from url file:///Users/nehalkanetkar/Library/Developer/CoreSimulator/Devices/7C974F3D-22A2-4D1C-BAA8-479F13C9B4A1/data/Containers/Data/Application/EC0D06A7-7B43-4163-929B-907DE6FB62F0/StoreKit/receipt
2023-08-17 12:07:11.537194-0400 Ground News α[43738:13759165] [Purchases] - DEBUG: ℹ️ Skipping products request for these products because they were already cached: ["com.groundnews.ios.yearly.premium"]
2023-08-17 12:07:11.537647-0400 Ground News α[43738:13760544] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Started
2023-08-17 12:07:11.537766-0400 Ground News α[43738:13760544] [Purchases] - INFO: ℹ️ Parsing receipt
2023-08-17 12:07:11.538642-0400 Ground News α[43738:13760544] [Purchases] - INFO: ℹ️ Receipt parsed successfully
2023-08-17 12:07:11.538846-0400 Ground News α[43738:13760544] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Posting receipt (note: the contents might not be up-to-date, but it will be refreshed with Apple's servers):
{"opaque_value":"8XdY2w4AAAA=","sha1_hash":"ezCPBPCdo6cu+QPC7sB2SqJYwYs=","bundle_id":"com.checkitt.development","in_app_purchases":[{"product_id":"com.groundnews.ios.yearly.premium","quantity":1,"transaction_id":"0","is_in_intro_offer_period":true,"expires_date":"2023-08-17T16:07:09Z","purchase_date":"2023-08-17T16:07:02Z","product_type":-1},{"product_id":"com.groundnews.ios.yearly.premium","quantity":1,"transaction_id":"1","is_in_intro_offer_period":false,"expires_date":"2023-08-17T16:13:16Z","original_purchase_date":"2023-08-17T16:07:02Z","original_transaction_id":"0","product_type":-1,"purchase_date":"2023-08-17T16:07:10Z"}],"application_version":"1","creation_date":"2023-08-17T16:07:11Z","expiration_date":"4001-01-01T00:00:00Z"}
2023-08-17 12:07:11.538912-0400 Ground News α[43738:13760544] [Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request POST receipts
2023-08-17 12:07:11.539426-0400 Ground News α[43738:13760544] [Purchases] - DEBUG: ℹ️ API request started: POST /v1/receipts
2023-08-17 12:07:11.700055-0400 Ground News α[43738:13760544] [Purchases] - ERROR: 😿‼️ The receipt is not valid.
2023-08-17 12:07:11.700231-0400 Ground News α[43738:13760544] [Purchases] - DEBUG: ℹ️ API request failed: POST /v1/receipts: The receipt is not valid.
2023-08-17 12:07:11.700337-0400 Ground News α[43738:13760544] [Purchases] - DEBUG: ℹ️ PostReceiptDataOperation: Finished
2023-08-17 12:07:11.700381-0400 Ground News α[43738:13759165] [Purchases] - INFO: 💰 Finishing transaction '1' for product 'com.groundnews.ios.yearly.premium'
2023-08-17 12:07:11.700511-0400 Ground News α[43738:13760544] [Purchases] - DEBUG: ℹ️ Serial request done: POST receipts, 0 requests left in the queue
2023-08-17 12:07:11.734821-0400 Ground News α[43738:13759850] [Purchases] - DEBUG: ℹ️ StoreKit1Wrapper (0x0000600002c1b5a0) removedTransaction: com.groundnews.ios.yearly.premium 1 0 1
  1. Steps to reproduce, with a description of expected vs. actual behavior
  • Attempt to get a free trial to appear.
  • Attempt to purchase a subscription.
  1. Other information (e.g. stacktraces, related issues, suggestions how to fix, links for us to have context, eg. stackoverflow, etc.)

  2. Additional context
    Add any other context about the problem here.

@nkanetka nkanetka added the bug label Aug 17, 2023
@RCGitBot
Copy link
Contributor

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

@MarkVillacampa
Copy link
Member

Hello @nkanetka!

The first thing I would recommend if you're using StoreKit config files is re-uploading the Public Certificate to RevenueCat as it might have become obsolete.

Additionally, if you've been testing with the same Sandbox account on multiple devices, I'd recommend creating a new Sandbox account and trying again.

This will rule out some of the most typical issues, let me know if it works!

@NachoSoto
Copy link
Contributor

What @MarkVillacampa said ⬆️
We believe those 2 things will fix this issue:

The receipt is not valid

We're also working on improving these "invalid receipt" errors from the backend to include additional context so it's more obvious what needs to be done to fix them.

Let us know if that works!

@NachoSoto NachoSoto added the status: waiting-for-reply Issues that are waiting for a reply label Aug 17, 2023
@nkanetka
Copy link
Author

Hello @nkanetka!

The first thing I would recommend if you're using StoreKit config files is re-uploading the Public Certificate to RevenueCat as it might have become obsolete.

Additionally, if you've been testing with the same Sandbox account on multiple devices, I'd recommend creating a new Sandbox account and trying again.

This will rule out some of the most typical issues, let me know if it works!

What @MarkVillacampa said ⬆️ We believe those 2 things will fix this issue:

The receipt is not valid

We're also working on improving these "invalid receipt" errors from the backend to include additional context so it's more obvious what needs to be done to fix them.

Let us know if that works!

Thanks for the fast reply!

I just tried that again (re-generating the Public Certificate and uploading it to the dashboard) and it doesn't look like that changes anything. The certificate has no changes (in the git diff) so I'm not sure anything changed there? I tried with the StoreKitConfiguration file after re-uploading it and I still get the above error and our free trial doesn't appear either (even though its configured to appear)

I haven't been using a sandbox account myself (as I've been testing with the simulator) but I just tried with a fresh sandbox account with a fresh install from TestFlight and it still isn't working as intended...

@nkanetka
Copy link
Author

@NachoSoto @MarkVillacampa Any updates/thoughts?

It's been 4 days now without any reply. Your suggestions DO NOT ❌ fix the issues that we have...

@MarkVillacampa
Copy link
Member

Hello @nkanetka

We're still checking for possible issues when using StoreKit config files. Will report back once we have news.

Regarding using Sandbox accounts, there is a subtle caveat: Testflight builds do not use the Sandbox account you have configured in the App Store, instead they use your real Apple ID but no real purchases are performed. Unfortunately, there is no way to reset purchase history for Testflight purchases. The way to use a Sandbox account when testing purchases is to run your app directly from Xcode, or use a local debug build. You will notice the purchase alert says [Environment: Sandbox]. Can you test using a Sandox account this way?

Screenshot 2023-08-21 at 18 32 57

@nkanetka
Copy link
Author

@MarkVillacampa

Unfortunately we're unable to test locally without a StoreKit config file or on a device because we have different bundle ID's for our apps (for development and testing).

When using the TestFlight build I am able to make a "sandbox" purchase, however no one on our team has been able to get out free trial banner to appear and looking at the free trial check, it's always returning false from RC even after we delete the app and login with a fresh account (note on older versions of the SDK we are able to get the free trial banner BUT something in RC is causing our builds to hang on CI when they get to unit tests).

So I guess to summarize the issues:

  • We DO NOT see the free trial banner (and it returns false regardless) for sandbox users AND locally when using a StoreKit config file
  • We are NOT able to test sandbox accounts in Xcode and local debug builds as we have different bundle ID's setup
  • We CAN simulate a purchase with TestFlight however it doesn't work as intended as we don't see a free trail banner (see 1.)

@nkanetka
Copy link
Author

We recently ran into an issue where we were rejected on the AppStore for a receipt validation issue. I knew our StoreKitConfiguration file wasn't working so I've been investigating for a few weeks and ended up looking at the receipt thats generated. It looks the issue in Xcode is that we were using a different bundle ID than the one in the Revenue Cat dashboard.

Any suggestions for how to deal with different bundle ID's? We have a few (one for development, staging and production) and it would be nice to not have to manually change the bundle ID every time we need to test the app.

Also regarding the AppStore rejection, any thoughts? My current theory is that tester hit the 100 receipt limit but I have no way of verifying that...

@lionel-alves
Copy link

lionel-alves commented Apr 30, 2024

For us this issue (The receipt is not valid.) appears only for the App Store Reviewer so we get rejected for that from time to time. We kindly ask him to try again and sometimes the issue goes away. But we just got rejected twice on the same build for this reason, so a fix would be great. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug status: waiting-for-reply Issues that are waiting for a reply
Projects
None yet
Development

No branches or pull requests

5 participants