Skip to content

[iOS] Reduce RevenueCat SDK size - #23

Merged
arturogutierrez merged 5 commits into
mainfrom
arturo/mna-5346-reduce-revenuecat-size
Sep 7, 2026
Merged

arturogutierrez merged 5 commits into
mainfrom
arturo/mna-5346-reduce-revenuecat-size

Conversation

@arturogutierrez

@arturogutierrez arturogutierrez commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

Motivation

MNA-5346

Goodnotes only consumes the core RevenueCat product, while the fork still contained several unused products, runtime features, tests, examples, and upstream development tooling.

Description

  • Reduces the Swift package from four products and six targets to one RevenueCat product and target with no external package dependencies.
  • Removes RevenueCatUI, Customer Center, RevenueCat paywall rendering and events, the standalone ReceiptParser product, and custom entitlement computation.
  • Removes unused upstream tests, sample applications, Xcode/CocoaPods projects, and release tooling.
  • Retains the internal receipt parser and Goodnotes-specific customer-info paywall metadata required by GNISI.
  • Retains the Xcode 27 / Swift 6.4 compatibility fix included in the branch baseline.
  • Removes 2,313 tracked files and approximately 10.49 MiB from the current checkout without rewriting Git history.
  • Reduces release object size by 27.2% and RevenueCat.swiftmodule size by 40.5%.

Tested with:

  • swift build -c release --target RevenueCat
  • GNISI build for iOS Simulator
  • GNISI-Package test suite: 86 tests passed

0xpablo and others added 5 commits June 8, 2026 22:34
…wise init

Swift 6.4 (Xcode 27) synthesizes a memberwise `init(stringRepresentation:)` for
`PaywallColor` (the optional `_underlyingColor` gets an implicit nil default and is
dropped from the parameter list), which collides with the public throwing
`init(stringRepresentation:)`, failing with 'invalid redeclaration of synthesized
memberwise init' / 'ambiguous use of init'.

Declaring the designated initializer in the type body suppresses the synthesized
memberwise init. Gated behind '#if compiler(>=6.4)' so older toolchains keep the
original extension-based arrangement and are unchanged.

@nesterenkodm nesterenkodm left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

cool, this is a good optimization

@arturogutierrez
arturogutierrez merged commit 100aca2 into main Sep 7, 2026
1 check passed
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