Question

iOS 15 GetPurchaserInfo() empty

  • 26 September 2021
  • 9 replies
  • 130 views

Badge

Hi as some users might have already posted, since upgrading one of my device to iOS 15, GetPurchaserInfo returns null. Rebooting the phone and running the app again will work but on renewal it will once again return null. All is well on iOS 14. Still using code from demo app https://github.com/RevenueCat/purchases-flutter/blob/master/example/lib/main.dart. Any idea of a fix.. ? Thanks !

 

✓] Flutter (Channel stable, 2.5.1, on macOS 11.4 20F71 darwin-x64, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.2)
[✓] VS Code (version 1.60.1)
[✓] Connected device (2 available)
 

Pubspec: purchases_flutter: ^3.4.5

Phone: iPhoneX (iOS 15.0)


9 replies

Badge +2

I have the same problem with the same configuration

Badge +2

I bought the new iphone on the first day available so the iPhone we have today in our hands was packed and shipped some time ago from factories in China to our country. On many of these iPhones iOS 15 (build 19A341) was installed but on September 20 Apple released iOS 15 (build 19A346) (at least for the Italian version)

This is a minor update, which will have solved some very small bugs that the company became aware of at the last minute.

Now the update to iOS 15 is presented even if we are already in iOS 15 for this reason. == ==Among these tiny bugs there is also this==.


After installing the further iOS update everything seems to work fine. I reserve the right to try it for another day to see if what I saw this evening is confirmed.

Badge

Carlo, thanks for the update. I’m also on build build 19A346 (English). Upgraded from iOS 14.

Userlevel 2
Badge +4

Hi!! Thanks for reporting!

We’re trying to reproduce this on our side and will update here once we know more.

Userlevel 2
Badge +4

are you still seeing this?

I haven’t been able to reproduce yet on iOS 15 (19A346) or 15.1 beta 2 (19B5052f), I get a valid purchaserInfo after purchase and after renewal.

Do you have any specific steps that work to reproduce this for you?

Badge

Andy, As long as i reload/rebuild the app its the same result. Deleting the app → rebooting the phone→ then reinstalling, will allow a subscription to go through only once then nothing on the second try..

Userlevel 2
Badge +4

@Derron I retried today with the example app that’s linked in the original post, and I’m still getting valid values before and after renewal.

Could you share debug logs for the case where `purchaserInfo` is returning null? They might go a long way in informing us of what’s going on in that case.

Badge

@Andy what i’m seeing in the debug logs now. This is with old sandbox account on ios 15.0.1. Again, using code from https://github.com/RevenueCat/purchases-flutter/blob/master/example/lib/main.dart

[Purchases] - DEBUG: ℹ️ Debug logging enabled

[Purchases] - DEBUG: ℹ️ SDK Version - 3.12.3

[Purchases] - DEBUG: 👤 Initial App User ID - O……………..

[Purchases] - DEBUG: ℹ️ Sending latest PurchaserInfo to delegate.

[Purchases] - DEBUG: ℹ️ Delegate set

[Purchases] - DEBUG: ℹ️ There are no requests currently running, starting request GET /subscribers/O...................................

[Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/Of……………………………..

[Purchases] - DEBUG: ℹ️ API request started: GET /v1/subscribers/O……………………./offerings

[Purchases] - DEBUG: ℹ️ Vending PurchaserInfo from cache.

flutter: PurchaserInfo{entitlements: EntitlementInfos{all: {all_features: EntitlementInfo{identifier: all_features, isActive: true, willRenew: true, periodType: PeriodType.normal, latestPurchaseDate: 2021-10-07T04:13:25Z, originalPurchaseDate: 2021-10-07T04:12:28Z, expirationDate: 2021-10-07T04:18:25Z, store: Store.appStore, productIdentifier: rc_299_1m, isSandbox: true, unsubscribeDetectedAt: null, billingIssueDetectedAt: null}}, active: {all_features: EntitlementInfo{identifier: all_features, isActive: true, willRenew: true, periodType: PeriodType.normal, latestPurchaseDate: 2021-10-07T04:13:25Z, originalPurchaseDate: 2021-10-07T04:12:28Z, expirationDate: 2021-10-07T04:18:25Z, store: Store.appStore, productIdentifier: rc_299_1m, isSandbox: true, unsubscribeDetectedAt: null, billingIssueDetectedAt: null}}}, latestExpirationDate: 2021-10-07T04:18:25Z, allExpirationDates: {rc_promo_all_features_daily: 2021-09-25T23:05:12Z, rc_299_1m: 2021-10-07T04:18:25Z, rc_2999_1y: 2021-09-19T03:51:16Z}, allPurchaseDates: {rc_promo_all_features_daily: 2021-09-24T23:05:12Z, rc_299_1m: 2021-10-07T04:13:25Z, rc_2999_1y: 2021-09-19T02:51:16Z}, activeSubscriptions: [rc_299_1m], allPurchasedProductIdentifiers: [rc_promo_all_features_daily, rc_299_1m, rc_2999_1y], firstSeen: 2021-07-16T19:18:42Z, originalAppUserId: O…………………………, requestDate: 2021-10-07T04:13:28Z, originalApplicationVersion: 1.0, originalPurchaseDate: 2013-08-01T07:00:00Z, managementURL: itms-apps://apps.apple.com/account/subscriptions, nonSubscriptionTransactions: []}

[Purchases] - DEBUG: ℹ️ No cached Offerings, fetching from network

[Purchases] - DEBUG: ℹ️ API request completed with status: GET /v1/subscribers/O………………./offerings 304

[Purchases] - DEBUG: ℹ️ Requesting products from the store with identifiers: {(

    "rc_299_1m",

    "rc_2999_1y"

)}

[Purchases] - DEBUG: ℹ️ API request completed with status: GET /v1/subscribers/O……………………… 429

[Purchases] - ERROR: 😿‼️ Unknown error.

[Purchases] - DEBUG: ℹ️ Serial request done: GET /subscribers/O…………………., 0 requests left in the queue

Userlevel 2
Badge +4

thanks for posting! that’s very helpful.

And that `Unknown error` definitely looks like the culprit.

Any chance that you hit our rate limits?

The SDK is supposed to handle that case more elegantly, though. Did the call not throw any exception?

Reply