Skip to content

feat: Include Payment Extension by Default#763

Closed
BrandonStalnaker wants to merge 3 commits into
mainfrom
feat/Include-Payments-By-Default
Closed

feat: Include Payment Extension by Default#763
BrandonStalnaker wants to merge 3 commits into
mainfrom
feat/Include-Payments-By-Default

Conversation

@BrandonStalnaker

Copy link
Copy Markdown
Collaborator

Background

  • Shoppable Ads relies on RoktPaymentExtension; the kit now pulls it in by default. Apps that do not want that stack can use the no-payments variant instead.

What Has Changed

  • Swift Package Manager (Kits/rokt/rokt/Package.swift)

  • Declares a dependency on https://github.com/ROKT/rokt-payment-extension-ios.git (from 2.0.0).

  • mParticle-Rokt (unchanged product name) now links mParticle-Rokt-Swift plus a small mParticle-Rokt-PaymentLinkage target that depends on RoktPaymentExtension, so the extension is available by default without renaming or changing the primary product.

  • Adds mParticle-Rokt-No-Payments, a second library product that depends only on mParticle-Rokt-Swift (no RoktPaymentExtension / Stripe).

  • Raises swift-tools-version to 5.9 for alignment with the payment extension toolchain.

  • CocoaPods (mParticle-Rokt.podspec)

  • Introduces Core (sources, privacy bundle, mParticle-Apple-SDK, RoktContracts, Rokt-Widget).

  • Payments is the default_subspec: Core + RoktPaymentExtension ~> 2.0.

  • No-Payments: Core only (pod 'mParticle-Rokt/No-Payments').

Checklist

  • I have performed a self-review of my own code.
  • I have made corresponding changes to the documentation.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have tested this locally.

Reference Issue (For employees only. Ignore if you are an outside contributor)

@BrandonStalnaker BrandonStalnaker requested a review from a team as a code owner April 30, 2026 19:37
@cursor

cursor Bot commented Apr 30, 2026

Copy link
Copy Markdown

PR Summary

Medium Risk
Medium risk because it changes the kit’s packaging and default dependency graph for both SwiftPM and CocoaPods, which can impact consumers’ build/link behavior and transitive deps (e.g., Stripe). Runtime logic changes are minimal (a linkage-only target plus docs/changelog updates).

Overview
Makes RoktPaymentExtension included by default when installing the Rokt kit, while providing explicit no-payments install options.

For SwiftPM, bumps tools to 5.9, adds a dependency on rokt-payment-extension-ios, and splits products into default mParticle-Rokt (links a new mParticle-Rokt-PaymentLinkage target that imports RoktPaymentExtension) and optional mParticle-Rokt-No-Payments (omits the extension). For CocoaPods, restructures the pod into Core + default Payments subspec (adds RoktPaymentExtension) plus No-Payments subspec.

Updates README.md and CHANGELOG.md to document the new installation choices and the default payments behavior.

Reviewed by Cursor Bugbot for commit 0a1106a. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

github-actions Bot commented Apr 30, 2026

Copy link
Copy Markdown

📦 SDK Size Impact Report

Measures how much the SDK adds to an app's size (with-SDK minus without-SDK).

Metric Target Branch This PR Change
App Bundle Impact 1.75 MB 1.75 MB +N/A
Executable Impact 848 bytes 848 bytes +N/A
XCFramework Size 6.41 MB 6.41 MB +N/A

➡️ SDK size impact change is minimal.

Raw measurements

Target branch (main):

{"baseline_app_size_kb":84,"baseline_executable_size_bytes":75464,"with_sdk_app_size_kb":1880,"with_sdk_executable_size_bytes":76312,"sdk_impact_kb":1796,"sdk_executable_impact_bytes":848,"xcframework_size_kb":6568}

This PR:

{"baseline_app_size_kb":84,"baseline_executable_size_bytes":75464,"with_sdk_app_size_kb":1880,"with_sdk_executable_size_bytes":76312,"sdk_impact_kb":1796,"sdk_executable_impact_bytes":848,"xcframework_size_kb":6568}

denischilik
denischilik previously approved these changes Apr 30, 2026
Comment thread CHANGELOG.md
@jamesnrokt

Copy link
Copy Markdown
Collaborator

My main concern here is it could be pretty confusing given the two options

Screenshot 2026-05-01 at 4 40 17 PM

@BrandonStalnaker

Copy link
Copy Markdown
Collaborator Author

Updated the README.md with clear instructions. Also beginning work on an alternate Rokt iOS SDK+ so we can choose between this implementation and it.

@jamesnrokt

Copy link
Copy Markdown
Collaborator

Closing as solved by #766

@jamesnrokt jamesnrokt closed this May 12, 2026
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.

4 participants