- Migrated `STPAnalyticsClient` & dependent classes into `StripeCore`
- Exposed internally available analytics code with to spi-public using the `STP` namespace so it could be used from other Stripe modules
- Migrated `STPAPIClient.sharedUrlSessionConfiguration` -> `StripeAPIConfiguration.sharedUrlSessionConfiguration` so it can be shared across modules
- Dependency injected the public key from `STPAPIClient` into `STPAnalyticsClient` via a new `PublishableKeyProvider` protocol
- Created wrappers for protocols declared SPI-public inside `StripeCore` to avoid displaying SPI-public conformance in our docs
- Updated `build_documentation.sh` to clean the pod cache for all Stripe pods
- Created a new `StripeCore` project (with `Placeholder.swift` file)
- Added `StripeCore.podspec` and new `StripeCore` target in `Packages.swift`
- Updated `check_version.rb` and `update_version.sh` to check & update versions in all `*.podspec` files
- Added `check_podspecs_for_branches.sh` to use during deploy process
- Moved `BuildConfigurations` out of `Stripe` folder and into root directory
- Deleted unused xcconfig files (`LocalizationTester*.xcconfig` and `StripeiOSResources.xcconfig`)
- Migrated `StripeiOS`-specific build settings out of shared xcconfig files and onto the project.
- Added `clean_project_build_settings.sh` to ensure `project.pbxproj` files don't overwrite xcconfig settings (more below)
- Removed build settings from the StripeiOS target that were overriding xcconfigs (using `clean_project_build_settings.sh`)
This change updates our release process to update fewer version and enables us to more easily share the version string across multiple frameworks when we split the SDK. We will no longer need to manually edit the version strings for:
- `Info.plist`
- `Stripe.podspec`
- `STPAPIClient.swift`
This change:
1. Adds a `Version.xcconfig` file that controls `StripeiOS` project & build version. This will eventually be shared across multiple frameworks.
2. Adds an `update_version.sh` script that will update the version strings in `Version.xcconfig`, `Stripe.podspec`, and `StripeAPIConfiguration+Version.swift` from the `VERSION` file.
3. Migrates hardcoded version string from `STPAPIClient.STPSDKVersion` into `StripeAPIConfiguration+Version.swift`. This file:
- Is autogenerated from `VERSION`
- Will be moved to `StripeCore` as part of MOBILESDK-265