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

[in_app_purchase] Getting error while completing error purchases on iOS 14 #66253

Closed
pavel-stupka opened this issue Sep 21, 2020 · 31 comments
Closed
Labels
c: crash Stack traces logged to the console e: OS-version specific Affects only some versions of the relevant operating system p: in_app_purchase Plugin for in-app purchase P2 Important issues not at the top of the work list package flutter/packages repository. See also p: labels. platform-ios iOS applications specifically waiting for PR to land (fixed) A fix is in flight

Comments

@pavel-stupka
Copy link

I'm using the latest in_app_purchase plugin (0.3.4+8).

According to documentation on iOS all error purchaseses need to be completed by calling InAppPurchaseConnection.instance.completePurchase.

Steps to reproduce:

  1. On iOS 14.0 invoke a consumable in-app: InAppPurchaseConnection.instance.buyConsumable

  2. Wait for the system dialog for approving the payment.

  3. Don't approve the payment, hit the Cancel button to interrupt the in-app process.

  4. Step 3 generates an error state for the Purchase and the Purchase is returned in InAppPurchaseConnection.instance.purchaseUpdatedStream. The underlying SKPaymentTransactionWrapper (used by the PurchaseDetails class) contains transactionIdentifier which is later used by InAppPurchaseConnection.instance.completePurchase mechanism to complete the purchase.

According to the documentation in src/store_kit_wrappers/sk_payment_transaction_wrappers.dart

The unique string identifer of the transaction.

It is only defined when the [transactionState] is
[SKPaymentTransactionStateWrapper.purchased] or
[SKPaymentTransactionStateWrapper.restored]. You may wish to record this
string as part of an audit trail for App Store purchases. The value of
this string corresponds to the same property in the receipt.

This is not true, transactionIdentifier is returned for error Purchases as well because it is needed by the undelaying mechanisms to complete the transactions (see SKPaymentQueueWrapper.finishTransaction in src/store_kit_wrappers/sk_payment_queue_wrapper.dart). This worked well until iOS 14.0 was released. Now hitting Cancel button in step 3 throws en exception:

<SKPaymentQueue: 0x280050d90>: Payment completed with error: Error Domain=ASDErrorDomain Code=907 "Unhandled exception" UserInfo={NSUnderlyingError=0x280ca7a50 {Error Domain=AMSErrorDomain Code=6 "Payment Sheet Failed" UserInfo={NSLocalizedDescription=Payment Sheet Failed, NSLocalizedFailureReason=Payment sheet cancelled}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}

and the returned PurchaseDetails class (or more precisely the underlaying SKPaymentTransactionWrapper) contains no transactionIdentifier (it is null):

skPaymentTransaction: {transactionState: 2, payment: {productIdentifier: XXX, applicationUsername: null, requestData: null, quantity: 1, simulatesAskToBuyInSandbox: false}, originalTransaction: null, transactionTimeStamp: null, transactionIdentifier: null, error: Instance of 'SKError'}

Now trying to call InAppPurchaseConnection.instance.completePurchase while the transactionIdentifier of the underlaying SKPaymentTransactionWrapper is null throws an exception:

[VERBOSE-2:ui_dart_state.cc(166)] Unhandled Exception: PlatformException(storekit_invalid_argument, Argument type of finishTransaction is not a string., null)
#0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:572:7)
#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161:18)
<asynchronous suspension>
#2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:334:12)
#3      SKPaymentQueueWrapper.finishTransaction (package:in_app_purchase/src/store_kit_wrappers/sk_payment_queue_wrapper.dart:106:19)
#4      AppStoreConnection.completePurchase (package:in_app_purchase/src/in_app_purchase/app_store_connection.dart:68:10)

I believe there may be some problem processing error Purchases on iOS 14 thus not getting their transactionIdentifiers.

@valehasadli

This comment has been minimized.

@TahaTesser
Copy link
Member

Hi @pavelstupka
Can you please provide your flutter doctor -v your flutter run --verbose and a complete reproducible minimal code sample
Thank you

@TahaTesser TahaTesser added in triage Presently being triaged by the triage team waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds labels Sep 21, 2020
@pavel-stupka
Copy link
Author

Flutter doctor:

[✓] Flutter (Channel stable, 1.20.4, on Mac OS X 10.15.5 19F101, locale en-GB)
    • Flutter version 1.20.4 at /Users/simopt/flutter
    • Framework revision fba99f6cf9 (7 days ago), 2020-09-14 15:32:52 -0700
    • Engine revision d1bc06f032
    • Dart version 2.9.2

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /Users/simopt/Library/Android/sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit https://flutter.dev/docs/get-started/install/macos#android-setup for detailed instructions.

[✓] Xcode - develop for iOS and macOS (Xcode 12.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.0, Build version 12A7209
    • CocoaPods version 1.8.4

[✓] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 47.1.2
    • Dart plugin version 193.7361
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] VS Code (version 1.49.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.12.2

[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.

@no-response no-response bot removed the waiting for customer response The Flutter team cannot make further progress on this issue until the original reporter responds label Sep 21, 2020
@TahaTesser TahaTesser added e: OS-version specific Affects only some versions of the relevant operating system p: first party p: in_app_purchase Plugin for in-app purchase platform-ios iOS applications specifically c: crash Stack traces logged to the console and removed in triage Presently being triaged by the triage team labels Sep 22, 2020
@TahaTesser TahaTesser changed the title Getting error while completing error purchases on iOS 14 (in_app_purchase) [in_app_purchase] Getting error while completing error purchases on iOS 14 Sep 25, 2020
@koskimas
Copy link

koskimas commented Oct 2, 2020

I think this is the same issue as #66886

@dennis-tra
Copy link

Just filed a fix flutter/plugins#3106

@TahaTesser TahaTesser added the waiting for PR to land (fixed) A fix is in flight label Oct 2, 2020
@DangKhoi1997
Copy link

@dennis-tra updated to version 0.3.4+12 but it still not pop up purchase dialog :(. Anyone has same error ??

@dennis-tra
Copy link

dennis-tra commented Oct 7, 2020

@DangKhoi1997 Could it be that the purchase is still in the TransactionQueue from your previous attempts? In your purchaseUpdate listener you should call complete purchase on all purchases that are in the Failed or Purchased state right after the app start. Alternatively as a one off thing you could grab all transaction by calling transactions() and then call completePurchase on the returned transactions. If this has succeed you should be able to trigger the pop up dialog again.

@zodiark23
Copy link

zodiark23 commented Oct 7, 2020

@dennis-tra its already working for me. I'm rebuilding my app again. v0.3.4+12 fixed it for me

@DangKhoi1997
Copy link

@DangKhoi1997 Could it be that the purchase is still in the TransactionQueue from your previous attempts? In your purchaseUpdate listener you should call complete purchase on all purchases that are in the Failed or Purchased state right after the app start. Alternatively as a one off thing you could grab all transaction by calling transactions() and then call completePurchase on the returned transactions. If this has succeed you should be able to trigger the pop up dialog again.

okie let me try 👍

@zodiark23
Copy link

zodiark23 commented Oct 7, 2020

@dennis-tra off topic question, i just noticed that in iOS 14 loading of products is significantly longer compared to earlier versions of iOS with this plugin. Did you encounter the same issue?

@dennis-tra
Copy link

@zodiark23 sorry, I haven't experienced a higher latency in loading the products. When loading the products in the simulator I get parsing errors though - which hasn't happened before. I'm usually testing on the real device, so that's not a huge problem right now.

@DangKhoi1997
Copy link

@dennis-tra hmm the issue still exist, but i dont understand how can "grab all transaction by calling transactions() and then call completePurchase on the returned transactions. If this has succeed you should be able to trigger the pop up dialog again." Can you give me sample ?

@bazinac
Copy link

bazinac commented Oct 25, 2020

Hi, I am running into similar issue within_app_purchase: ^0.3.4+15 on iOS14. Using sandbox, when I try to purchase nonconsumable, I am asked for sandbox testers password and then for request of family approval - which I do not understand why at all. If I click submit, I get

<SKPaymentQueue: 0x282873810>: Payment completed with error: Error Domain=ASDErrorDomain Code=1052 "Unhandled exception" UserInfo={NSUnderlyingError=0x2824c0000 {Error Domain=AMSErrorDomain Code=511 "Family permission required" UserInfo={NSLocalizedDescription=Family permission required}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}

If I click cancel, I get:
<SKPaymentQueue: 0x282ae7f10>: Payment completed with error: Error Domain=ASDErrorDomain Code=1052 "Unhandled exception" UserInfo={NSLocalizedDescription=Unhandled exception, NSLocalizedFailureReason=An unknown error occurred}

Either way this purchase is then caught in PurchaseStatus.pending indefinitely and I do not know how to complete it (because purchaseDetails.pendingCompletePurchase is false at this point)

As a result I cannot initiate new purchase because of
[VERBOSE-2:ui_dart_state.cc(177)] Unhandled Exception: PlatformException(storekit_duplicate_product_object, There is a pending transaction for the same product identifier. Please either wait for it to be finished or finish it manually using completePurchase to avoid edge cases., {applicationUsername: null, requestData: null, quantity: 1, productIdentifier: 1, simulatesAskToBuyInSandbox: true}, null)

Has anyone experienced similar issue?

@bazinac
Copy link

bazinac commented Oct 26, 2020

Reverted to flutter_inapp_purchase, works nice without such issues.

@Hatchout
Copy link

Still having the same issue...

@kqureshi14
Copy link

Hi, I am running into similar issue within_app_purchase: ^0.3.4+15 on iOS14. Using sandbox, when I try to purchase nonconsumable, I am asked for sandbox testers password and then for request of family approval - which I do not understand why at all. If I click submit, I get

<SKPaymentQueue: 0x282873810>: Payment completed with error: Error Domain=ASDErrorDomain Code=1052 "Unhandled exception" UserInfo={NSUnderlyingError=0x2824c0000 {Error Domain=AMSErrorDomain Code=511 "Family permission required" UserInfo={NSLocalizedDescription=Family permission required}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}

If I click cancel, I get:
<SKPaymentQueue: 0x282ae7f10>: Payment completed with error: Error Domain=ASDErrorDomain Code=1052 "Unhandled exception" UserInfo={NSLocalizedDescription=Unhandled exception, NSLocalizedFailureReason=An unknown error occurred}

Either way this purchase is then caught in PurchaseStatus.pending indefinitely and I do not know how to complete it (because purchaseDetails.pendingCompletePurchase is false at this point)

As a result I cannot initiate new purchase because of
[VERBOSE-2:ui_dart_state.cc(177)] Unhandled Exception: PlatformException(storekit_duplicate_product_object, There is a pending transaction for the same product identifier. Please either wait for it to be finished or finish it manually using completePurchase to avoid edge cases., {applicationUsername: null, requestData: null, quantity: 1, productIdentifier: 1, simulatesAskToBuyInSandbox: true}, null)

Has anyone experienced similar issue?

i am also experiencing the same, do you think it mean i also have to remove the in_app_purchase: ^0.3.4+16 and shift to flutter_inapp_purchase: ^3.0.0 please advise, as major problem why it asking for parent & guardian permission as i not set any family sharing on my iPhone.

@ceokin
Copy link

ceokin commented Nov 5, 2020

Hi, I am running into similar issue within_app_purchase: ^0.3.4+15 on iOS14. Using sandbox, when I try to purchase nonconsumable, I am asked for sandbox testers password and then for request of family approval - which I do not understand why at all. If I click submit, I get

<SKPaymentQueue: 0x282873810>: Payment completed with error: Error Domain=ASDErrorDomain Code=1052 "Unhandled exception" UserInfo={NSUnderlyingError=0x2824c0000 {Error Domain=AMSErrorDomain Code=511 "Family permission required" UserInfo={NSLocalizedDescription=Family permission required}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}

If I click cancel, I get:
<SKPaymentQueue: 0x282ae7f10>: Payment completed with error: Error Domain=ASDErrorDomain Code=1052 "Unhandled exception" UserInfo={NSLocalizedDescription=Unhandled exception, NSLocalizedFailureReason=An unknown error occurred}

Either way this purchase is then caught in PurchaseStatus.pending indefinitely and I do not know how to complete it (because purchaseDetails.pendingCompletePurchase is false at this point)

As a result I cannot initiate new purchase because of
[VERBOSE-2:ui_dart_state.cc(177)] Unhandled Exception: PlatformException(storekit_duplicate_product_object, There is a pending transaction for the same product identifier. Please either wait for it to be finished or finish it manually using completePurchase to avoid edge cases., {applicationUsername: null, requestData: null, quantity: 1, productIdentifier: 1, simulatesAskToBuyInSandbox: true}, null)

Has anyone experienced similar issue?

@ceokin
Copy link

ceokin commented Nov 5, 2020

See this thread regarding the request of family approval:

#68626 (comment)

@duck-dev-go
Copy link

I have the same issue

@vintage
Copy link

vintage commented Nov 16, 2020

Same problem here, using in_app_purchase: ^0.3.4+16. Not sure how the purchaseUpdatedStream can solve the problem as in my case it's not even called when I cancel the system prompt about confirming the payment.

Steps to reproduce:

  1. Start app
  2. Clear all previous purchases through:
InAppPurchaseConnection.instance.queryPastPurchases().then((pastPurchases) {
      log("Past purchases: $pastPurchases");
      pastPurchases.pastPurchases.forEach((p) {
        log("Past purchase: $p");
        if (p.pendingCompletePurchase) {
          plugin.completePurchase(p);
        }
      });
    });
  1. Start listening on purchaseUpdatedStream for purchase changes
  2. Trigger action which fires buyNonConsumable call
  3. Cancel the native popup about confirming the payment
  4. purchaseUpdatedStream is not called
  5. After restarting the app queryPastPurchases returns nothing
  6. Calling again buyNonConsumable do not shows the native system. Nothing the user can done. Restarting the app (stoping and recompiling) solves the problem and popup appears again (once per run).

flutter doctor --verbose

[✓] Flutter (Channel stable, 1.22.3, on Mac OS X 10.15.7 19H15, locale en-GB)
    • Flutter version 1.22.3 at /usr/local/opt/flutter
    • Framework revision 8874f21e79 (3 weeks ago), 2020-10-29 14:14:35 -0700
    • Engine revision a1440ca392
    • Dart version 2.10.3

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at /Users/kamil/Library/Android/sdk/
    • Platform android-29, build-tools 29.0.2
    • ANDROID_SDK_ROOT = /Users/kamil/Library/Android/sdk/
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.2, Build version 12B45b
    • CocoaPods version 1.10.0

[!] Android Studio (version 4.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6915495)

[✓] VS Code (version 1.50.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.16.0

[✓] Connected device (1 available)
    • iPhone (mobile) • 00008020-001E18C13C92002E • ios • iOS 14.1

! Doctor found issues in 1 category.

@kqureshi14
Copy link

kqureshi14 commented Nov 16, 2020 via email

@vintage
Copy link

vintage commented Nov 16, 2020

@kqureshi14 didn't change anything. The strange(r) thing is that it works once per app start - like something is kept in memory which prevents the dialog from showing up again. I've even tried to reproduce it in the example app, but the required steps with creating completely new app for iOS is bit too much for now. Switching to flutter_inapp_purchase as it seems to correctly support IAP cancelling.

@lvchenyang
Copy link

Hi, I am running into similar issue within_app_purchase: ^0.3.4+15 on iOS14. Using sandbox, when I try to purchase nonconsumable, I am asked for sandbox testers password and then for request of family approval - which I do not understand why at all. If I click submit, I get

<SKPaymentQueue: 0x282873810>: Payment completed with error: Error Domain=ASDErrorDomain Code=1052 "Unhandled exception" UserInfo={NSUnderlyingError=0x2824c0000 {Error Domain=AMSErrorDomain Code=511 "Family permission required" UserInfo={NSLocalizedDescription=Family permission required}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}

If I click cancel, I get:
<SKPaymentQueue: 0x282ae7f10>: Payment completed with error: Error Domain=ASDErrorDomain Code=1052 "Unhandled exception" UserInfo={NSLocalizedDescription=Unhandled exception, NSLocalizedFailureReason=An unknown error occurred}

Either way this purchase is then caught in PurchaseStatus.pending indefinitely and I do not know how to complete it (because purchaseDetails.pendingCompletePurchase is false at this point)

As a result I cannot initiate new purchase because of
[VERBOSE-2:ui_dart_state.cc(177)] Unhandled Exception: PlatformException(storekit_duplicate_product_object, There is a pending transaction for the same product identifier. Please either wait for it to be finished or finish it manually using completePurchase to avoid edge cases., {applicationUsername: null, requestData: null, quantity: 1, productIdentifier: 1, simulatesAskToBuyInSandbox: true}, null)

Has anyone experienced similar issue?

Just change the value of sandboxTesting from true to false will fix this issue.

@kqureshi14
Copy link

kqureshi14 commented Nov 17, 2020 via email

@vintage
Copy link

vintage commented Nov 18, 2020

Just before calling the buyNonConsumable I perform additional step:

// Workaround to mark as finished failed transactions on iOS
    if (Platform.isIOS) {
      final queueWrapper = SKPaymentQueueWrapper();
      final transactions = await queueWrapper.transactions();

      await Future.wait(
          transactions.map((t) => queueWrapper.finishTransaction(t)));
    }

It's run to ensure the queue won't contain any failed transactions and to avoid storekit_duplicate_product_object error. Still I'd rather assume that purchaseUpdatedStream gets notified in case of such errors so it could be made more reactive.

UPDATE: I've wrongly implemented the listening part of purchaseUpdatedStream. After fixes it's correctly notified about cancellation error and I can simply remove the hack.

final plugin = InAppPurchaseConnection.instance;
plugin.purchaseUpdatedStream.transform(
      StreamTransformer<List<PurchaseDetails>,
          PurchaseDetails>.fromHandlers(
        handleData: (purchaseDetails, sink) {
          purchaseDetails.forEach(
            (purchase) async {
              log("New purchase: $purchase");

              if (purchase.pendingCompletePurchase) {
                await plugin.completePurchase(purchase);
              }

              sink.add(purchase);
            },
          );
        },
      ),
    );

@duck-dev-go
Copy link

Just before calling the buyNonConsumable I perform additional step:

// Workaround to mark as finished failed transactions on iOS
    if (Platform.isIOS) {
      final queueWrapper = SKPaymentQueueWrapper();
      final transactions = await queueWrapper.transactions();
      final failedTransactions = transactions.where(
          (t) => t.transactionState == SKPaymentTransactionStateWrapper.failed);

      await Future.wait(
          failedTransactions.map((t) => queueWrapper.finishTransaction(t)));
    }

It's run to ensure the queue won't contain any failed transactions and to avoid storekit_duplicate_product_object error. Still I'd rather assume that purchaseUpdatedStream gets notified in case of such errors so it could be made more reactive.

UPDATE: I've wrongly implemented the listening part of purchaseUpdatedStream. After fixes it's correctly notified about cancellation error and I can simply remove the hack.

final plugin = InAppPurchaseConnection.instance;
plugin.purchaseUpdatedStream.transform(
      StreamTransformer<List<PurchaseDetails>,
          PurchaseDetails>.fromHandlers(
        handleData: (purchaseDetails, sink) {
          purchaseDetails.forEach(
            (purchase) async {
              log("New purchase: $purchase");

              if (purchase.pendingCompletePurchase) {
                await plugin.completePurchase(purchase);
              }

              sink.add(purchase);
            },
          );
        },
      ),
    );

Yep that works! Great work

@hussamDana92
Copy link

I have the same issue

@khacnha
Copy link

khacnha commented Dec 23, 2020

The same with error:
<SKPaymentQueue: 0x281f8b430>: Payment completed with error: Error Domain=ASDErrorDomain Code=500 "Unhandled exception" UserInfo={NSUnderlyingError=0x2812c6370 {Error Domain=AMSErrorDomain Code=100 "Authentication Failed" UserInfo={NSLocalizedFailureReason=The verify credentials call failed., NSLocalizedDescription=Authentication Failed, NSUnderlyingError=0x2812c4e70 {Error Domain=AMSErrorDomain Code=0 "Authentication Failed" UserInfo={NSLocalizedDescription=Authentication Failed, NSLocalizedFailureReason=Encountered an unrecognized authentication failure.}}}}, NSLocalizedFailureReason=An unknown error occurred, NSLocalizedDescription=Unhandled exception}

@hanyska
Copy link

hanyska commented Feb 4, 2021

Just before calling the buyNonConsumable I perform additional step:

// Workaround to mark as finished failed transactions on iOS
    if (Platform.isIOS) {
      final queueWrapper = SKPaymentQueueWrapper();
      final transactions = await queueWrapper.transactions();
      final failedTransactions = transactions.where(
          (t) => t.transactionState == SKPaymentTransactionStateWrapper.failed);

      await Future.wait(
          failedTransactions.map((t) => queueWrapper.finishTransaction(t)));
    }

It's run to ensure the queue won't contain any failed transactions and to avoid storekit_duplicate_product_object error. Still I'd rather assume that purchaseUpdatedStream gets notified in case of such errors so it could be made more reactive.

UPDATE: I've wrongly implemented the listening part of purchaseUpdatedStream. After fixes it's correctly notified about cancellation error and I can simply remove the hack.

final plugin = InAppPurchaseConnection.instance;
plugin.purchaseUpdatedStream.transform(
      StreamTransformer<List<PurchaseDetails>,
          PurchaseDetails>.fromHandlers(
        handleData: (purchaseDetails, sink) {
          purchaseDetails.forEach(
            (purchase) async {
              log("New purchase: $purchase");

              if (purchase.pendingCompletePurchase) {
                await plugin.completePurchase(purchase);
              }

              sink.add(purchase);
            },
          );
        },
      ),
    );

Can you paste all code?

@cyanglaz
Copy link
Contributor

I just confirmed that flutter/plugins#3106 fixed the issue in the original post. Closing the issue.

@github-actions
Copy link

github-actions bot commented Aug 3, 2021

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 3, 2021
@flutter-triage-bot flutter-triage-bot bot added the package flutter/packages repository. See also p: labels. label Jul 5, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
c: crash Stack traces logged to the console e: OS-version specific Affects only some versions of the relevant operating system p: in_app_purchase Plugin for in-app purchase P2 Important issues not at the top of the work list package flutter/packages repository. See also p: labels. platform-ios iOS applications specifically waiting for PR to land (fixed) A fix is in flight
Projects
None yet
Development

No branches or pull requests