* Initial app creation
* Initial screen
* Installs and configures the SDK
* Creates a full Swift 6 compliant ViewModel
* Adds a demo customer center button
* Fixes icon name
* Updates a bit of the logic to fetch offerings
* Updates initial layout by showing offerings
* Makes more progress with a VERY DRAFT and VERY WIP screen
* Creates a new network path and requests
* Creates a new health API and adds it to the BE class
* Creates a `checkOfferings` method
* Pushes local changes
* Moved viewmodels to separate files
* Prepared some basic UI structure
* Adds specific branch of `purchases-ios` for testing
* Gets the sample app back to compiling
* Shows products
* Initial implementation of the products view
* More progress
* More changes
* Added first illustrations
* Added noise background and visual to offerings
* Presenting Product on tap
* made more progress on sample
* Removed NavBar
* Fetches offerings with the latest changes to the SDK
* Adds offerings view
* Maps packages into offering
* Updates app so that we can show a list of the packages that belong to an offering
* Moves all logic to a dedicated health view model
* Adds a full-screen blocking error to the app
* More slight adjustments
* Adds a way to purchase products directly from the Sample App
* Adds an empty StoreKit Configuration file to the scheme
* Changes bundle id
* Only allow scroll behaviour to bounce where it makes sense
* Bit of a better layout for the full screen error
* Points RC Swift Package back to the `main` branch
* Re-adds error messages to make sure that we can just point the user in the right direction
* Updates product cell to have better styles and test purchase button
* Updates `ProductCell` to make sure purchased products can be shown
* Removes unnecessary files from PR
* Formats files
* Removes warning
* Adds project to the API checker script
* Adds project to the update revision fastlane script
* Updates error view
* Removes storekit config file temporarily
* Updates name of property to match dashboard
* Updates entitlementId name
* Adds storekit file back to the scheme (this will get injected from the BE)
* Optimizes app icon to reduce repo size
* Reduces app icon file
* Remove instead of comment out
* Removes unused `EntitlementsView`
* Removes duplicate
* Removes all headers from Swift files
* Uses string directly rather than property holding single string
* canNot to cannot
* Renames products to packages
* Refactors logic to tidy up a bit
* Moves types over to their own files
* More tidying up
* Renames properties from sdk to loaded
* Removes previews that do not work
* Renames `purchasable` to `viewModel`
* Fixes sendability issues
* Converts folders to groups instead
---------
Co-authored-by: Hidde van der Ploeg <hiddevanderploeg@me.com>
* feat: have testing apps take RevenueCat API key and Proxy URL from local.xcconfig file
* fix wording mistakes in `Local.xcconfig.SAMPLE`
* chore: include `ConfigItem.swift` file in `verify_no_included_apikeys` check
* fix more mistakes in comments
## More project structure cleanup:
- Removes redundant workspace and project files for PurchaseTester
- Cleans up bad references
- Cleans up certificates
- Re-does the process to deploy PurchaseTester, since it was designed to
run from the xcworkspace, which doesn't work anymore.
- adds a `dry-run` option to deploying PurchaseTester and adds a job for
it in the all-tests workflow. It tries building it and archiving but
doesn't actually publish to TestFlight. We didn't really have a test for
this, so it's another thing that could have broken in production.
This PR:
- Updates the bundle name to com.revenuecat.app (a new app in App Store
Connect has been set up.)
- Updates the icon.
- Update the app's Display Name to Revenue Cat.
- Removes unneeded keys for "demos" and "testing".
- Changes how keys are stored/managed locally. I'm not completely happy
with this arrangement, but I think it's an improvement because local
keys are now stored in a separate file which can be marked as
`skip-worktree` or `assume-unchanged` which hides them from the diff to
help you not commit changes in it accidentally (which I have done).
- Adds a file in the pre-commit hook to check for keys in
`LocalConfigItems.swift`
For this to compile in release, and the demos tab to show up, the
changes from [this
PR](https://github.com/RevenueCat/purchases-ios/pull/3885) are needed.
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`):_

I noticed this new warning in the `pre-commit` hook:
> warning: The --path option is deprecated. Pass the path(s) to lint last to the swiftlint command.
This fixes that.
* Add setup_dev fastlane lane
Add fastlane lane for dev setup
Update documentation
Add pre-commit hook script and link it during dev setup
Add SwiftLint to new build phase step in project so people can see issues before commit.
* test
* Fail the pre-commit with friendly message if swiftlint fails
* remove comma from message