Skip to main content
To install the frameworks manually, follow the steps below: Download the latest SDKs from our GitHub repository. You can find the download URLs for each SDK in package.json. Manualintegration1 1

Embed Frameworks in the App Target

The Linking column in the tables below applies to SDK 11.2.0 and later. In earlier versions, every framework is dynamic and requires Embed & Sign. For the effect of static linking on cold launch time, see Framework Impact.
Add the frameworks you need to your app target as shown below. The Embed option depends on how the framework is linked: Manualintegration2 1 Required Frameworks: Add-on Frameworks:

Additional Steps for Static Frameworks

1

Set Embed to Do Not Embed

For each static framework you integrate, set the Embed option to Do Not Embed in your app target.
2

Copy the Resource Bundle

Do Not Embed copies nothing out of the framework, so the module’s resource bundle does not reach your app. Each static framework that ships resources includes its .bundle alongside the .xcframework in the release zip. For every one you integrate, add that .bundle to your app target’s Copy Bundle Resources build phase:Without the bundle, In-App, Cards, and Inbox screens render blank, with no crash and no build error. Your app also ships without the module’s privacy manifest.
3

Add the -ObjC Linker Flag

In your app target’s build settings, add -ObjC to Other Linker Flags. The flag makes the linker include every Objective-C class and category from the static frameworks, including the ones your app does not reference directly. Add it once for the app target, regardless of how many static frameworks you integrate.
Complete this step if you use the MoEngageRichNotification framework. Link the framework in your extension targets as shown below and set the Embed option to Do Not Embed, because the framework is already embedded in your app target:
Manualintegration3
In the extension target build settings, add @executable_path/../../Frameworks to LD_RUNPATH_SEARCH_PATHS.