-
Notifications
You must be signed in to change notification settings - Fork 22
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
v3.4.0 #174
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Created an InternalPurchaseController. This coordinates the purchasing between provided purchase controllers and the internal purchasing mechanism. - Removed StoreKitCoordinator and removed redundant files like PurchaseManager. - Verification now happens before finishing a product. - No longer checks for restored product after purchase. This means if someone repurchases a product they already have, it'll count as a transaction_complete. This shouldn't be happening anyway, but something to consider.
- Stops ASN1 files from being public/open. - Fixes tests
…se-controller Feature/add internal purchase controller
…ule-match Feature/add context to no rule match
Also updates the version to 3.3.3.
feature/expose-sdk-version
…-with-survey feature/fix-paywall-decline-with-survey
Removes semaphore from UIWindow because all UIWindow events will be performed in serial as they're on the main actor.
Feature/touches began trigger
…e purchased product may be `nil`
…on-complete feature/survey-on-transaction-complete
feature/survey-close
Updated version to 3.4.0
- Stores every purchased transaction by product if the transaction date of the purchased transaction is greater than the last stored transaction. Then when getting the latest transaction it defaults to SK2 and checks it has a transaction date within the last hour. If that fails, then it gets the lastInternalTransaction, i.e. the transaction that caused the internal purchase controller to mark the transaction as purchased. Otherwise, we fallback to getting the last transaction whose date is within the last hour. If that fails, we wait 500ms before trying again and finally returning nil. - When completing a purchase, a check is added that the productId of the purchase is the one being purchased. Also checks that the date of the purchase is within the last hour to stop old purchases from completing the purchase. - Fixes tests and swiftlint
… dismiss of paywallviewcontroller
Fixes issue where transactions other than purchased wouldn't call the completion block.
…duct Fallback to SK1 Transaction
Added a few protocols to cover UNUserNotificationCenter testing.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes in this pull request
Enhancements
sdk_version
,sdk_version_padded
,app_build_string
, andapp_build_string_number
to the device object for use in rules.sdk_version
is the version of the sdk, e.g.3.4.0
.sdk_version_padded
is the sdk version padded with zeros for use with string comparison. For example003.004.000
.app_build_string
is the build of your app andapp_build_string_number
is the build of your app casted as an Int.no_rule_match
, theTriggerFire
event params will specify which part of the rules didn't match in the format"unmatched_rule_<id>": "<outcome>"
. Whereoutcome
will either beOCCURRENCE
, referring to the limit applied to a rule, orEXPRESSION
. Theid
is the experiment id.touches_began
implicit trigger. By adding thetouches_began
event to a campaign, you can show a paywall the first time a user touches anywhere in your app.Fixes
paywall_decline
trigger.PurchaseController
.StoreTransaction
associated with the purchased product may benil
.presentationRequest
wasn't being tracked for implicit triggers likesession_start
when there was no internet.Checklist
CHANGELOG.md
for any breaking changes, enhancements, or bug fixes.swiftlint
in the main directory and fixed any issues.