Update from Library to Setapp Framework

If your app is integrated with our product via Setapp Library, you're staying with us for years, and we want to thank you for that πŸ’“.

And now it's time to switch to Setapp Framework, right? Let us guide you for a smooth move.

πŸ“˜

External resources

Setapp doesn't require the involvement of external resources, but you can choose to use a package manager to install our Framework as an alternative to the manual installation.

See examples of integrations on our GitHub.

General flow

  1. Remove Setapp Library libSetapp.a from your project.
  2. Remove linker flags related to Setapp from your project.
    -force_load "$(BUILT_PRODUCTS_DIR)/libSetapp.a”
  3. Download your app’s public key from our GitHub and add it to your project.
  4. Install the Setapp Framework. Read our documentation on how to do it by using package managers (Swift, CocoaPods, Carthage) or manually. Mind the tips below.

πŸ“˜

Note

If you have apps that run on macOS 10.12 and earlier versions, set the minimum deployment target to 10.13 to successfully build the app on the Framework.

  1. Build the project. If you see any warnings on the legacy methods, follow the instructions to fix the issue mentioned in the warning message or contact your Developer Support Representative.

Tips for Setapp Framework installation

By using a package manager

  • The Setapp Framework is added as a Swift Package Manager dependency; there is no option to move it to a different location.

Manual

  • When you add the Setapp Framework, choose the Do not embed option.

  • Add SetappFramework-Resources-iOS.bundle to the Copy Bundle Resources build phase.

  • Remove SCLibraryVersion if you have any issues with it. It is deprecated.

  • Note that these functions were renamed:
    SCReportUsageEvent -> SetappManager.shared.reportUsageEvent(_:)
    SCShowReleaseNotesWindowIfNeeded -> SetappManager.shared.showReleaseNotesWindowIfNeeded()
    SCShowReleaseNotesWindow -> SetappManager.shared.showReleaseNotesWindow()
    SCEnableDebugLogging -> SetappManager.logLevel