Draft
Conversation
2 tasks
Co-Authored-By: Claude Opus 4.6 <[email protected]>
Generated iOS project with bundle ID com.revenuecat.maestro.e2e using flutter create. Added Podfile for CocoaPods-based plugin dependencies. Updated .gitignore to exclude Flutter ephemeral iOS files. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Replace non-existent Purchases.customerInfoStream with the correct addCustomerInfoUpdateListener/removeCustomerInfoUpdateListener API. Also add missing iOS Flutter xcconfig and AppFrameworkInfo.plist files that are required for building. Co-Authored-By: Claude Opus 4.6 <[email protected]>
77e844c to
fb2197f
Compare
Co-Authored-By: Claude Opus 4.6 <[email protected]> Made-with: Cursor
The StoreKitConfiguration.storekit file was on disk but not registered as a PBXFileReference in project.pbxproj, so Xcode couldn't find it at runtime. Also fix the scheme identifier path. Made-with: Cursor
The identifier is relative to the .xcodeproj directory, so it needs the ../ prefix to reach the sibling StoreKitConfiguration.storekit. Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
This was referenced Mar 30, 2026
- Use path: references for purchases_flutter and purchases_ui_flutter so E2E tests exercise the local branch code instead of pub.dev - Add dependency_overrides for purchases_flutter to resolve transitive dependency conflict from purchases_ui_flutter - Commit ios/Podfile.lock for reproducible CI builds - Add try/catch to presentPaywall for diagnosable test failures - Add README with build/run instructions and API key setup Made-with: Cursor
- Show errors in a visible Text widget with Key('error-message') instead of
only debugPrint, so Maestro can capture failures in screenshots
- Add Key identifiers to entitlements label and paywall button
Made-with: Cursor
- Add .catchError() to getCustomerInfo() to surface errors in the UI instead of producing an unhandled exception Made-with: Cursor
## Summary - Pin all `uses:` references in GitHub Actions workflows to full SHA hashes - Prevents supply chain attacks via tag mutation or typosquatting ## Context - https://rosesecurity.dev/2026/03/20/typosquatting-trivy.html - Generated with [`pinact`](https://github.com/suzuki-shunsuke/pinact) ## Test plan - [ ] Verify CI passes with pinned references - [ ] Spot-check that pinned SHAs match expected release tags <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk: only updates GitHub Actions `uses:` references to pinned commit SHAs, with no runtime code or business logic changes. Main risk is accidental pinning to an incorrect commit causing workflow behavior changes. > > **Overview** > Pins GitHub Actions `uses:` references to immutable commit SHAs in the `issue-notifications` and `lock` workflows (replacing `@v2`/`@v2.0.1` tags) to harden CI against tag mutation and typosquatting. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 16ae2a6. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
…1701) Bumps [fastlane-plugin-revenuecat_internal](https://github.com/RevenueCat/fastlane-plugin-revenuecat_internal) from `9a6911b` to `f11fe40`. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/RevenueCat/fastlane-plugin-revenuecat_internal/commit/f11fe4027ace451efa36c1bf6f4fc1742f5025d6"><code>f11fe40</code></a> Add merge queue support to merge_pr action (<a href="https://redirect.github.com/RevenueCat/fastlane-plugin-revenuecat_internal/issues/120">#120</a>)</li> <li>See full diff in <a href="https://github.com/RevenueCat/fastlane-plugin-revenuecat_internal/compare/9a6911be3659cd14fe62ada4cbae3a2f8792691c...f11fe4027ace451efa36c1bf6f4fc1742f5025d6">compare view</a></li> </ul> </details> <br /> Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk dependency-only change; the main impact is on CI/release tooling via the updated fastlane plugin and its transitive gem versions. > > **Overview** > Bumps the `fastlane-plugin-revenuecat_internal` git dependency to revision `f11fe40`. > > Refreshes `Gemfile.lock` with minor version updates to transitive gems, including `nokogiri` (`1.19.1` → `1.19.2`) and `mime-types-data` (`3.2026.0303` → `3.2026.0317`). > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 95d82ca. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…kage - Update AGP to 8.13.2 and Kotlin to 1.8.22 (matching purchase_tester) - Upgrade Gradle wrapper from 8.12 to 8.14.4 - Move MainActivity to com.revenuecat.automatedsdktests package to match the namespace declared in build.gradle.kts Made-with: Cursor
purchases_ui_flutter requires FlutterFragmentActivity instead of FlutterActivity to present paywalls. Made-with: Cursor
This file contains hidden or 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
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.
Summary
Adds a Maestro E2E test app under
e2e-tests/MaestroTestApp/— a minimal Flutter app with two screens used by automated Maestro flows to verify the RevenueCat purchase integration.com.revenuecat.automatedsdktestsMAESTRO_TESTS_REVENUECAT_API_KEY) replaced at CI time viasedpath:references +dependency_overrides(same mechanism asrevenuecat_examples/purchase_tester)FlutterGeneratedPluginSwiftPackage); CocoaPods only carries the Flutter enginegetCustomerInfoandpresentPaywallare surfaced in the UI (not just logged) for Maestro screenshot captureKeyidentifiers for test targetingPodfile.lockCounterpart PRs: react-native-purchases#1635, purchases-capacitor#699, cordova-plugin-purchases#857, purchases-unity#836, purchases-kmp#708
Follow-up PRs (stacked)