Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

[in_app_purchase] Fix crash iOS sandboxTesting default value #3086

Closed
wants to merge 1 commit into from

Conversation

Vardiak
Copy link

@Vardiak Vardiak commented Sep 27, 2020

Description

Currently, in_app_purchase crashes when initiating a payment if sandboxTesting of PurchaseParam is null. But it is actually its default value (contrary to the definition which states that default value is false). In this pull request, the default value is fixed & I added an assert to check if the user didn't pass null explicitly which would cause a crash.

Related Issues

flutter/flutter#65767

Checklist

Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes ([x]). This will ensure a smooth and quick review process.

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • My PR includes unit or integration tests for all changed/updated/fixed behaviors (See Contributor Guide).
  • All existing and new tests are passing.
  • I updated/added relevant documentation (doc comments with ///).
  • The analyzer (flutter analyze) does not report any problems on my PR.
  • I read and followed the Flutter Style Guide.
  • The title of the PR starts with the name of the plugin surrounded by square brackets, e.g. [shared_preferences]
  • I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy.
  • I updated CHANGELOG.md to add a description of the change.
  • I signed the CLA.
  • I am willing to follow-up on review comments in a timely manner.

Breaking Change

Does your PR require plugin users to manually update their apps to accommodate your change?

  • Yes, this is a breaking change (please indicate a breaking change in CHANGELOG.md and increment major revision).
  • No, this is not a breaking change.

@googlebot
Copy link

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here with @googlebot I signed it! and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers

ℹ️ Googlers: Go here for more info.

@Vardiak
Copy link
Author

Vardiak commented Sep 27, 2020

@googlebot I signed it!

@googlebot
Copy link

CLAs look good, thanks!

ℹ️ Googlers: Go here for more info.

@cyanglaz
Copy link
Contributor

cyanglaz commented Sep 28, 2020

@Vardiak Thanks for the fix! Could you add a test for this?

In order to make it non-public API change fix, I would recommend to fix it on the OBJC side. We can always allow this value to be null and in the OBJC side, we just take the null value as false.

@Vardiak
Copy link
Author

Vardiak commented Sep 28, 2020

@Vardiak Thanks for the fix! Could you add a test for this?

In order to make it non-public API change fix, I would recommend to fix it on the OBJC side. We can always allow this value to be null and in the OBJC side, we just take the null value as false.

I'm not a OBJC developer, I may be able to help fix it there but I don't know what kind of test you are expecting me to write, since the fix is straightforward.

@cyanglaz
Copy link
Contributor

cyanglaz commented Sep 28, 2020

@Vardiak The test can be "if the sandboxTesting is nil, there is no crash"
I think there some OBJC unit tests in the plugin that you can follow.

I can also take over this fix if you don't feel like learning a bit of OBJC :) However, I'm currently working on some other high priority stuff so it might take some time before I can cycle back to this.

@Vardiak
Copy link
Author

Vardiak commented Oct 3, 2020

#3110 handles the issue at platform level, which is a better implementation

@Vardiak Vardiak closed this Oct 3, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants