Commit Graph
313 Commits
Author SHA1 Message Date
Joshua Liebowitz 4eabe93ef0 Version 4.0.0-beta.8 (#1101) (#1102) 2021-12-22 12:02:15 -08:00
aboedo cad10d8769 Storekit 2: update deployment targets (#977)
* updated deployment targets in Package.swift

* updated deployment targets in Podspec

* updated deployment targets in xcode project

* updated deployment target in cocoapods integration tests

* updated deployment target in SPM integration tests

* Added note in the v4_api_updates doc to document the new OS requirements

* reverted os version for watchOS back to "6.2" since it seems like `v6_2` doesn't work
2021-11-22 13:04:19 -03:00
c4d43ffdec Storekit 2: milestone 1 (#953)
* Sk2: fetch products, make purchases (#800)

* added product struct

* added Product protocol and separated wrappers for sk1 and sk2

* added price and localizedPriceString to Product

* added bridging code and first call to generic productsWithIdentifiers

* a lot of cleanup, added a couple more properties for products

* added subscription group id and cleaned up a bit

* Updated productsManager so it forwards the products calls to fetchers for sk1 and sk2

* updated a few tests and API availability checks

* updated a few methods to use productwrapper instead of skproduct

* updated tests in many places and apis

* fixed rebase issues

* fixed a few todos

* fixed a few issues caught by swiftlint

* fixed rebase issues and some visibility issues

* updated a few places to use SK2

* added horrifyingly hacky implementation for purchasing with sk2

* small cleanup, re-added method for getting SKProducts directly

* cleanup

* added caching to sk2 products fetcher

* removed trailing whitespace

* slight cleanup

* added more clarifying comments

* another cleanup

* added missing availability marks for macOS

* fixed availability marks for ProductsFetcher in ProductsManager

* yet another fix for macOS availability checks

* and more fixes for macOS version since 13.0 doesn't exist

* fixed issues in api tester

* fixed pod lib lint on non-arch64 architectures

* bundle update fastlane

* added test for dictionary += operator

* removed unnecessary method for fetching product wrappers

* cleanup file names

* updated references in StoreKitTests

* fixed targets for test file

* fixed rebase issues

* added StoreKit 2 transaction listener in the hopes of getting purchases working, unfortunately doesn't seem to work well

* fix bad refactor

* refactored, move purchasing logic to the orchestrator, added processing of results of SK 2 purchases to the orchestrator and the sk2 listener

* added arch checks in a few places to fix builds in armv7

* added another todo

* updated test for ProductsManager in StoreKit Test

* renamed `Product.swift` -> `ProductWrapper.swift`

* increased timeout for test

* added checks to ensure test compatibility with lower iOS versions

* ProductWrapper -> ProductDetails

* import Purchases -> import RevenueCat

* withProductDetailss -> withProductDetails

* productDetailss -> productDetails

* productsFromOptimalStore -> productsFromOptimalStoreKitVersion

* linting

* `Task.init {` -> `Task {`

* added comment explaining explicit cancel

* more improvements from PR comments

* `} catch let error {` -> `} catch {`

* readability improvements

* move init to the top for consistency

* extracted logging string into PurchasesString

* extracted another string

* added todo comment

* improvements from PR comments, removed redundant method

* removed unused method, more renames and improvements from PR comments

* updates xcode version for CI

* split files into StoreKit 1 and StoreKit 2 groups

* fix indentation

* fixed rebase issues

* Fix PurchaseTester project (#847)

* CheckTrialOrIntroPriceEligibility StoreKit2 support (#807)

* Sk2: fetch products, make purchases (#800)

* added product struct

* added Product protocol and separated wrappers for sk1 and sk2

* added price and localizedPriceString to Product

* added bridging code and first call to generic productsWithIdentifiers

* a lot of cleanup, added a couple more properties for products

* added subscription group id and cleaned up a bit

* Updated productsManager so it forwards the products calls to fetchers for sk1 and sk2

* updated a few tests and API availability checks

* updated a few methods to use productwrapper instead of skproduct

* updated tests in many places and apis

* fixed rebase issues

* fixed a few todos

* fixed a few issues caught by swiftlint

* fixed rebase issues and some visibility issues

* updated a few places to use SK2

* added horrifyingly hacky implementation for purchasing with sk2

* small cleanup, re-added method for getting SKProducts directly

* cleanup

* added caching to sk2 products fetcher

* removed trailing whitespace

* slight cleanup

* added more clarifying comments

* another cleanup

* added missing availability marks for macOS

* fixed availability marks for ProductsFetcher in ProductsManager

* yet another fix for macOS availability checks

* and more fixes for macOS version since 13.0 doesn't exist

* fixed issues in api tester

* fixed pod lib lint on non-arch64 architectures

* bundle update fastlane

* added test for dictionary += operator

* removed unnecessary method for fetching product wrappers

* cleanup file names

* updated references in StoreKitTests

* fixed targets for test file

* fixed rebase issues

* added StoreKit 2 transaction listener in the hopes of getting purchases working, unfortunately doesn't seem to work well

* fix bad refactor

* refactored, move purchasing logic to the orchestrator, added processing of results of SK 2 purchases to the orchestrator and the sk2 listener

* added arch checks in a few places to fix builds in armv7

* added another todo

* updated test for ProductsManager in StoreKit Test

* renamed `Product.swift` -> `ProductWrapper.swift`

* increased timeout for test

* added checks to ensure test compatibility with lower iOS versions

* ProductWrapper -> ProductDetails

* import Purchases -> import RevenueCat

* withProductDetailss -> withProductDetails

* productDetailss -> productDetails

* productsFromOptimalStore -> productsFromOptimalStoreKitVersion

* linting

* `Task.init {` -> `Task {`

* added comment explaining explicit cancel

* more improvements from PR comments

* `} catch let error {` -> `} catch {`

* readability improvements

* move init to the top for consistency

* extracted logging string into PurchasesString

* extracted another string

* added todo comment

* improvements from PR comments, removed redundant method

* removed unused method, more renames and improvements from PR comments

* updates xcode version for CI

* split files into StoreKit 1 and StoreKit 2 groups

* fix indentation

* adds check intro trial sk2 support

* fixes and renames

* removes debugging variables

* fixes and use of ProductsManager

* fix sk2Product isEligibleForIntroOffer

* remove swiftlint warning

* adds header and links to issues

* fix strings

* early return

* indentation fix

* removes maccatalyst

* fixes compilation and renames to checkEligibility

* changes on ProductsManager adding a specific sk2 function

* makes changes in TrialOrIntroPriceEligibilityChecker

* rename function to sk2ProductDetails

* some renaming

* duplicated ProductsFetcherSK1Tests.swift

* add XCTUnwrap

* revert

Co-authored-by: aboedo <andresboedo@gmail.com>

* fixed offeringsManagerTests (#856)

* Separate storekit test and backend tests (#845)

* Sk2: fetch products, make purchases (#800)

* added product struct

* added Product protocol and separated wrappers for sk1 and sk2

* added price and localizedPriceString to Product

* added bridging code and first call to generic productsWithIdentifiers

* a lot of cleanup, added a couple more properties for products

* added subscription group id and cleaned up a bit

* Updated productsManager so it forwards the products calls to fetchers for sk1 and sk2

* updated a few tests and API availability checks

* updated a few methods to use productwrapper instead of skproduct

* updated tests in many places and apis

* fixed rebase issues

* fixed a few todos

* fixed a few issues caught by swiftlint

* fixed rebase issues and some visibility issues

* updated a few places to use SK2

* added horrifyingly hacky implementation for purchasing with sk2

* small cleanup, re-added method for getting SKProducts directly

* cleanup

* added caching to sk2 products fetcher

* removed trailing whitespace

* slight cleanup

* added more clarifying comments

* another cleanup

* added missing availability marks for macOS

* fixed availability marks for ProductsFetcher in ProductsManager

* yet another fix for macOS availability checks

* and more fixes for macOS version since 13.0 doesn't exist

* fixed issues in api tester

* fixed pod lib lint on non-arch64 architectures

* bundle update fastlane

* added test for dictionary += operator

* removed unnecessary method for fetching product wrappers

* cleanup file names

* updated references in StoreKitTests

* fixed targets for test file

* fixed rebase issues

* added StoreKit 2 transaction listener in the hopes of getting purchases working, unfortunately doesn't seem to work well

* fix bad refactor

* refactored, move purchasing logic to the orchestrator, added processing of results of SK 2 purchases to the orchestrator and the sk2 listener

* added arch checks in a few places to fix builds in armv7

* added another todo

* updated test for ProductsManager in StoreKit Test

* renamed `Product.swift` -> `ProductWrapper.swift`

* increased timeout for test

* added checks to ensure test compatibility with lower iOS versions

* ProductWrapper -> ProductDetails

* import Purchases -> import RevenueCat

* withProductDetailss -> withProductDetails

* productDetailss -> productDetails

* productsFromOptimalStore -> productsFromOptimalStoreKitVersion

* linting

* `Task.init {` -> `Task {`

* added comment explaining explicit cancel

* more improvements from PR comments

* `} catch let error {` -> `} catch {`

* readability improvements

* move init to the top for consistency

* extracted logging string into PurchasesString

* extracted another string

* added todo comment

* improvements from PR comments, removed redundant method

* removed unused method, more renames and improvements from PR comments

* updates xcode version for CI

* split files into StoreKit 1 and StoreKit 2 groups

* fix indentation

* updated all references from StoreKitTests -> BackendIntegrationTests

* updated references in a few more places

* updated name of target back to StoreKitTests so the cert doesn't get updated 🙄

* fixed issues in tests

* updated arch checks for arm devices from if arm64 to if !arm, so that the code will run successfully in intel macs

* upgraded deployment target to 12.0 to fix issues when compiling StoreKit 2.
Removed arch checks.

* added separate `UnitTestsHostApp` since the `StoreKitTest` app has higher minimum deployment target than the unit tests target

* added separate scheme for unit tests to address the need of StoreKitTest

* fixed scheme name for Scanfile

* small fixes

* added skipping of test depending on OS version availability

* added pre-warming of iOS device since tests aren't starting up correctly in CI

* added pre-warming of iphone 6 and tv

* fixed devices setup since iPhone 6 is no longer available in CircleCI

* renamed StoreKitTestApp + StoreKitTests -> BackendIntegrationTests + HostApp

* more fixes to naming

* updated Nimble version, more fixes to paths

* removed host app for regular unit tests, fixed setup

* even more naming fixes, updated the scan schemes so we don't try to test appleTV for the StoreKitUnitTests

* enabled backend_integration_tests for all commits

* added missing dependency to RevenueCat framework from StoreKitUnitTests target

* fixed dependencies between targets, which would compile more targets than necessary and would have issues where the main framework would get built for the wrong platform

* update fastlane

* fixed lane name

* fixed deployment target for backend integration tests

* updated scan device OS for backend integration tests to 15.0

* fixed integration tests running wrong fastlane lane, added pre-warming devices for regular unit tests, added command line tools installation step

* removed command line tools installation step

* updated device name since iPhone SE isn't available on circleCI

* updated iPhone SE -> iPhone 8 in a couple more places

* removed pre-warming of devices, since it has been removed from Xcode 13

* removed 14.5 device from tests for now

* removed signing from backend integration tests

* fixed rebase issues

* Sk2: ProductDetails cleanup and improvements (#832)

* moved logic to wrap products into productsFetcher, added basic test to compare sk1Wrapper and sk2Wrapper

* added more checks to cover all existing properties for productWrappers

* added test to check that sk1 wrapper works correctly

* added test for SK2 product wrapper

* renamed internal method `purchase(product:` -> `purchase(sk1Product:`

* moved StoreKit2TransactionListener into corresponding group in project

* added base file for PurchaseOrchestratorTests, improved a couple of version checks for tests

* updated imports to `RevenueCat`

* re-added @available in a couple of tests

* update naming: ProductWrapper -> ProductDetails

* fix rebasing issue

* added type aliases for legacy and new skproduct, updated references to them in many places

* renamed mockSKProduct -> mockLegacySKProduct

* more cleanup

* updated naming in a few more places

* and more naming updates

* final batch of naming updates

* updated naming from new and legacy sk products to sk1 and sk2 products

* fixed naming issues with variable names that started in uppercase

* more fixes to variable names

* even more naming fixes

* final batch of naming updates, rebase fixes

* several fixes from rebase

* removed another arch check

* fixes from PR comments

* fixed missing mocks for MockProductsManager

* more "productDetailss" var renames

* removed scan_scheme env variable since we're setting it manually

* added extra test configuration for UnitTests scheme, set test ordering to random

* small ci configuration updates

* added more generous timeout for one test case

* added pre-warming of simulators

* added device pre-warming at the fastlane level

* added test plan

* added manual sleep of 5 mins to see if that fixes the testing issues

* re-added manual opening of simulators, otherwise the wait makes no sense

* made the wait for simulator bit only happen in ci

* improvement from PR comments

* fixed one reason for app crash in iOS < 15, since SceneDelegate was missing

* added check for subscriptionGroupIdentifier

* updated to use XCTSkip instead of early return in a couple of tests

* Tests for CheckTrialOrIntroductoryPriceEligibility StoreKit2 using StoreKitTests (#863)

* Storekit 2: fix tests for iOS 14.5 (#890)

* updated storage of underlyingSK2Product to use Any to prevent crashes in 14.5 devices

* added comment and small cleanup

* re-added iOS 14.5 devices to fastlane scan

* fixed rebase issues

* merge storekit_2_disable_mac_builds

* Sk2 purchase tests (#873)

* added tests skeleton, cleaned up handling of purchase sk2 package

* code clean up, added mocks to sk unit tests target, clean up tests code

* added mockStoreKit2Listener, fixed purchasesOrchestator test

* implemented missing test cases

* casted SK2Product to any for storing to prevent linking issues

* fixed more issues with linking + moved PurchasesOrchestratorTests to storekit tests

* linting

* fixed duplicate files in build phase

* fixed more issues with linking on older OS

* fixed rebase issues

* fix one test in SwiftAPITester

* updated xcode version for swift api tester

* updated api testers to use an existing bundle id to prevent code signing issues

* remove development team + undo bundle id updates

* added fastlane match readonly step

* re-add dev team

* re-add dev team to release builds for objc api tester ios

* updated certs to use fastlane match

* specified missing params for match

* fixed copy/paste issue

* `MockStoreKit2Listener` -> `MockStoreKit2TransactionListener`

* added clearing of user defaults before every test run

* added crude handling of the user cancelled case for SK2 purchases.

* fixed indentation

* updated test name to reflect what it's actually testing

* reset the value of `failTransactionsEnabled` before every test

* moved to using `resetToDefaultState`

* Removes `RequiresXcode13` (#895)

* improve pre-warming and fix flaky tests (#897)

* replaced manual pre-warming with orb

* removed appleTV from prewarming list

* removed duplicate source file

* added test timeouts

* added artificial wait before running storekit tests

* made the artificial wait run only once

* removed unnecessary param

* moved the `Self.hasWaited = true` line above, removed unnecessary parenthesis

* doubled the wait time just in case, made it a static let.

* doubled initial wait time again

* removed another instance of `wait_for_simulator:true`

* Temporarily disable sk2 purchases (#898)

* added a feature flag to disable SK2 temporarily

* fixed tests

* Show Manage Subscriptions public API (#896)

* fix rebase issue

* fixed rebase issues

* Re-enable macOS builds (#923)

* updated xcode version to 13.1.0

* re-enabled macOS builds, re-added API tester for macOS

* Merge main into storekit_2 (#930)

* Begin Refund Request (#924)

* Fix/explicit errors on tasks (#940)

* replaced `Task.init` with `_ = Task<Void, Never>`, so that if the contents of the task throw, the compiler forces us to handle the exception

* added link with explanation to the swift style guide

* Fix: storekit 2 tests on older OS versions (#951)

* removed duplicate line for devices

* fixed tests for older os versions by not storing SK2 types directly in the tests target.

* fixed copy/pasta

* merged main into sk2 (#952)

* improvements from PR comments

* more improvements from PR comments

* even more improvements from PR comments

* more improvements from PR comments

* updated to use the new lock

* removed outdated comment

* added missing cases to switch

* refactor to pass in the systemInfo to productsManager, and to reuse existing instances for intro eligiblity

* made useStoreKit2IfAvailable an instance variable instead of static

* added test cases for fetching from optimal sk with different sk version preferences

* fixed instance of the wrong method being called from overriden `setUpWithError`

* oops, fixed missing `try`

* added more detail to fatalError message when sk version can't be determined

* split tests for `TrialOrIntroPriceEligibilityChecker` into SK1 and SK2

* fix merge conflicts

Co-authored-by: Cesar de la Vega <cesarvegaro@gmail.com>
Co-authored-by: beylmk <maddie@revenuecat.com>
2021-11-22 12:37:33 -03:00
revenuecat-opsandJoshua Liebowitz 1058fdbf01 Release/4.0.0-beta.7 (#972)
* Version bump for 4.0.0-beta.7

* Update CHANGELOG.latest.md

Changes for comments

Co-authored-by: Joshua Liebowitz <taquitos@users.noreply.github.com>
2021-11-18 15:38:48 -08:00
Joshua Liebowitz 05b148ee38 Release/4.0.0-beta.6 (#929)
* Version bump for 4.0.0-beta.6
* Update changelog
* Update signing
* Update cocoapodsintegration Gemfile.lock
2021-11-02 13:50:22 -07:00
Joshua Liebowitz 8699a69f7e Release/4.0.0-beta.5 (#925) 2021-10-27 11:03:21 -07:00
Joshua Liebowitz 8daeb597ad 4.0.0 Beta 4 (#912)
* Beta 4

- Purchaser to Customer rename
- Ensure restoreTransactions called on main thread
- Fix logging messages for HTTPClient
- Offerings completion not called in edge case
- Added setAirshipChannelID

* Update changelog

Add in PR links for items.
2021-10-19 16:21:48 -07:00
beylmk efb0c10cc0 4.0.0-beta.3 release (#871) 2021-09-24 10:32:03 -07:00
Joshua Liebowitz 2d135e1592 Version 4.0.0-beta.2 (#861)
* Version 4.0.0-beta.2

* Update SPM integration test for this branch

* Revert SPM package changes

Add fastlane README changes.

* Update project.pbxproj

Not quite right last time.

* Update project.pbxproj

Add back in PROVISIONING_PROFILE_SPECIFIER

* Update CHANGELOG.latest.md

Spelling

* Update CHANGELOG.md

Spelling

* Removed empty group

* Delete Package.resolved

Don't check in Package.resolved

* Update revision for APITesters Package.resolved

* Update SPMIntegration Project

Export RevenueCat-Swift.h header in public Headers section of build phase
Remove RCReceivePurchaserInfoBlock typedef to be more like RevenueCat framework (no longer using typedefs)

* Update SPMIntegration-Bridging-Header.h

* Update RevenueCat-Swift.h

* Update README.md

Update readme to make it clearer that we're not shipping SK2 yet.
2021-09-22 13:46:09 -07:00
Joshua Liebowitz f55900e3a1 Moved RequiresXcode13 to root 2021-09-07 10:42:57 -07:00
Joshua Liebowitz f682678301 Exclude RequiresXcode13 from package managers 2021-09-03 15:46:15 -07:00
Joshua Liebowitz fbef8338a6 RevenueCat V4 version bump 😻 (#813)
Getting ready for βeta
2021-09-02 14:38:17 -07:00
Joshua Liebowitz ce61a6c1c1 Rename Purchases.framework to RevenueCat.framework (#811)
* Rename Purchases.framework to RevenueCat.framework

* Update for comments
2021-09-02 13:53:59 -07:00