Skip to content

Purchase Tester: added companion watchOS app#2140

Merged
NachoSoto merged 1 commit into
mainfrom
purchase-tester-watchos
Dec 21, 2022
Merged

Purchase Tester: added companion watchOS app#2140
NachoSoto merged 1 commit into
mainfrom
purchase-tester-watchos

Conversation

@NachoSoto

@NachoSoto NachoSoto commented Dec 12, 2022

Copy link
Copy Markdown
Contributor

I added this in order to debug #2132.

Changes:

  • Extracted Core framework to be used by both apps
  • Added new watchOS target
  • Changed fastlane match to also create profiles for this new target
  • Added a simple view in the watch app that displays a text if an entitlement is active, or a restore purchases button otherwise

This is just a starting point, we can add more to it in the future.

Note:

Unfortunately I haven't been able to test this because of an Apple bug (FB11873951):

incoming-722CC7FA-D970-4E23-AB88-50167248D98D

@NachoSoto NachoSoto added the test label Dec 12, 2022
@NachoSoto NachoSoto requested a review from a team December 12, 2022 23:21
@NachoSoto NachoSoto changed the title PurchaseTesterSwiftUI: added companion watchOS app Purchase Tester: added companion watchOS app Dec 20, 2022
I added this in order to debug #2132.

- Extracted `Core` framework to be used by both apps
- Added new `watchOS` target
- Changed `fastlane match` to also create profiles for this new target
- Added a simple view in the watch app that displays a text if an entitlement is active, or a `restore` purchases button otherwise

@tonidero tonidero left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code LGTM but should we hold off on this until that apple bug is fixed? I guess we can merge for now and revisit later. Maybe add a TODO somewhere indicating that this hasn't been fully tested?

This is the default used by `ConfigurationView`
*/
static let apiKey = "REVENUECAT_API_KEY"
public static let apiKey = "REVENUECAT_API_KEY"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How will this work if using a dynamic API key?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah we’ll need a way to either share the key from the main app or add the configuration screen on the watch.

@NachoSoto

Copy link
Copy Markdown
Contributor Author

This is just a starting point, like I said in the description we can keep improving it later.

@NachoSoto NachoSoto merged commit 432b704 into main Dec 21, 2022
@NachoSoto NachoSoto deleted the purchase-tester-watchos branch December 21, 2022 15:31
NachoSoto pushed a commit that referenced this pull request Dec 21, 2022
**This is an automatic release.**

### Bugfixes
* `ErrorUtils.purchasesError(withUntypedError:)`: handle `PublicError`s
(#2165) via NachoSoto (@NachoSoto)
* Fixed race condition finishing `SK1` transactions (#2148) via
NachoSoto (@NachoSoto)
* `IntroEligibilityStatus`: added `CustomStringConvertible`
implementation (#2182) via NachoSoto (@NachoSoto)
* `BundleSandboxEnvironmentDetector`: fixed logic for `macOS` (#2176)
via NachoSoto (@NachoSoto)
* Fixed `AttributionFetcher.adServicesToken` hanging when called in
simulator (#2157) via NachoSoto (@NachoSoto)
### Other Changes
* `Purchase Tester`: added ability to purchase products directly with
`StoreKit` (#2172) via NachoSoto (@NachoSoto)
* `DNSChecker`: simplified `NetworkError` initialization (#2166) via
NachoSoto (@NachoSoto)
* `Purchases` initialization: refactor to avoid multiple concurrent
instances in memory (#2180) via NachoSoto (@NachoSoto)
* `Purchase Tester`: added button to clear messages on logger view
(#2179) via NachoSoto (@NachoSoto)
* `NetworkOperation`: added assertion to ensure that subclasses call
completion (#2138) via NachoSoto (@NachoSoto)
* `CacheableNetworkOperation`: avoid unnecessarily creating operations
for cache hits (#2135) via NachoSoto (@NachoSoto)
* `PurchaseTester`: fixed `macOS` support (#2175) via NachoSoto
(@NachoSoto)
* `IntroEligibilityCalculator`: added log including `AppleReceipt`
(#2181) via NachoSoto (@NachoSoto)
* `Purchase Tester`: fixed scene manifest (#2170) via NachoSoto
(@NachoSoto)
* `HTTPClientTests`: refactored to use `waitUntil` (#2168) via NachoSoto
(@NachoSoto)
* `Integration Tests`: split up tests in smaller files (#2158) via
NachoSoto (@NachoSoto)
* `StoreKitRequestFetcher`: removed unnecessary dispatch (#2152) via
NachoSoto (@NachoSoto)
* `Purchase Tester`: added companion `watchOS` app (#2140) via NachoSoto
(@NachoSoto)
* `StoreKit1Wrapper`: added warning if receiving too many updated
transactions (#2117) via NachoSoto (@NachoSoto)
* `StoreKitTestHelpers`: cleaned up unnecessary log (#2177) via
NachoSoto (@NachoSoto)
* `TrialOrIntroPriceEligibilityCheckerSK1Tests`: use `waitUntilValue`
(#2173) via NachoSoto (@NachoSoto)
* `DNSChecker`: added log with resolved host (#2167) via NachoSoto
(@NachoSoto)
* `MagicWeatherSwiftUI`: updated `README` to point to workspace (#2142)
via NachoSoto (@NachoSoto)
* `Purchase Tester`: fixed `.storekit` config file reference (#2171) via
NachoSoto (@NachoSoto)
* `Purchase Tester`: fixed error alerts (#2169) via NachoSoto
(@NachoSoto)
* `CI`: don't make releases until `release-checks` pass (#2162) via
NachoSoto (@NachoSoto)
* `Fastfile`: changed `match` to `readonly` (#2161) via NachoSoto
(@NachoSoto)
NachoSoto added a commit that referenced this pull request Dec 22, 2022
This broke with #2140. The new target was overriding `CODE_SIGN_IDENTITY`. It's not defined at the project level and shared for all targets.
NachoSoto added a commit that referenced this pull request Dec 22, 2022
Fixes
https://app.circleci.com/pipelines/github/RevenueCat/purchases-ios/9471/workflows/742cf687-6df8-4508-ae86-ab59aab2ea59/jobs/49868

This broke with #2140.
The new target was overriding `CODE_SIGN_IDENTITY`. It's not defined at
the project level and shared for all targets.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants