@loyalytics/swan-react-native-sdk
v2.10.0
Published
React Native SDK for Swan
Readme
Swan React Native SDK
⚠️ PROPRIETARY SOFTWARE: This SDK is proprietary software owned by Loyalytics. It requires a valid commercial license for use. See LICENSE for terms.
Installation
Note: This package is available via npm for authorized customers only. Installation requires a valid commercial license agreement with Loyalytics.
npm install @loyalytics/swan-react-native-sdkOr using yarn:
yarn add @loyalytics/swan-react-native-sdkRequirements
- React Native 0.74 or higher, iOS 13.4+, Android API 23+ (the minimums of React Native 0.74). (The Android module needs React Native 0.74 or later; it does not build on 0.70–0.73.)
- Android: your app's
compileSdkVersionmust be 34 or higher (the SDK's AndroidX dependencies, including WorkManager 2.9.1, require it). The React Native 0.74 and later templates already use 34; if your app sets a lower value, raise it inandroid/build.gradle(ext { compileSdkVersion = 34 }).minSdkVersionmust be 23 or higher, as React Native 0.74 requires;targetSdkVersionis unaffected.
Usage
import SwanSDK from '@loyalytics/swan-react-native-sdk';
// Initialize SDK
const sdk = SwanSDK.getInstance('YOUR_APP_ID', {
isProduction: false,
pushNotifications: {
enabled: true,
autoRequestPermission: true,
},
isProduction: true,
});
// Track events
sdk.productViewed({ productId: '123' });
// Listen for SDK events
sdk.on('initialized', () => {
console.log('SDK initialized!');
});iOS Notification Extension
To support Rich Media (Images) and Delivery Tracking (even when the app is killed), you must set up a Notification Service Extension.
We provide an automated tool and a guide to help you set this up.
node ./node_modules/@loyalytics/swan-react-native-sdk/scripts/setup-ios-extension.jsUpgrading the SDK
The extension files are copied into your ios/ folder, so upgrading the npm
package does not update them. Updating them is optional: your current
extensions keep working, and deliveries and carousel card taps are still
reported as before. Updating adds right-to-left carousel layout. To update,
refresh them from your project root and rebuild the app:
node ./node_modules/@loyalytics/swan-react-native-sdk/scripts/setup-ios-extension.js --update--update replaces only the extensions' Swift sources; your Info.plist,
entitlements (App Group) and storyboard are kept. From 2.10.0 the SDK warns in
the console (STALE iOS EXTENSION) when an extension copied from a different
SDK version handles a push or a carousel tap. Extensions copied from an older
SDK keep reporting deliveries and card taps as before; they keep the
left-to-right layout for right-to-left carousels.
Do not rely on install output: npm and yarn usually hide a dependency's postinstall output and pnpm skips it. After each upgrade run
node ./node_modules/@loyalytics/swan-react-native-sdk/scripts/setup-ios-extension.js --checkIt lists out-of-date extensions and exits non-zero — use it in CI or an Xcode build phase.
License
This software is proprietary and confidential. Unauthorized copying, modification, distribution, or use of this software is strictly prohibited.
Copyright © 2025 Loyalytics. All Rights Reserved.
For licensing inquiries, contact: [email protected]
See the LICENSE file for full terms.
Made with create-react-native-library
