Gathering detailed insights and metrics for @adobe/react-native-aepedge
Gathering detailed insights and metrics for @adobe/react-native-aepedge
Gathering detailed insights and metrics for @adobe/react-native-aepedge
Gathering detailed insights and metrics for @adobe/react-native-aepedge
@adobe/react-native-aepedgeidentity
Adobe Experience Platform Identity for Edge Network extension for Adobe Experience Platform Mobile SDK. Written and maintained by Adobe.
@adobe/react-native-aepmessaging
Adobe Experience Platform support for React Native apps.
@adobe/react-native-aeptarget
Adobe Experience Platform support for React Native apps.
@adobe/react-native-aepoptimize
Adobe Experience Platform support for React Native apps.
npm install @adobe/react-native-aepedge
@adobe/react-native-aepconsent@6.0.2
Published on 06 Jun 2024
@adobe/react-native-aepuserprofile@6.0.2
Published on 06 Jun 2024
@adobe/react-native-aeptarget@6.0.2
Published on 06 Jun 2024
@adobe/react-native-aepplaces@6.0.2
Published on 06 Jun 2024
@adobe/react-native-aepoptimize@6.0.2
Published on 06 Jun 2024
@adobe/react-native-aepmessaging@6.0.2
Published on 06 Jun 2024
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
15 Stars
795 Commits
29 Forks
13 Watching
17 Branches
247 Contributors
Updated on 21 Nov 2024
Minified
Minified + Gzipped
TypeScript (44.77%)
Java (32.27%)
Objective-C (16.62%)
Ruby (2.05%)
Swift (1.96%)
Kotlin (0.96%)
Objective-C++ (0.76%)
JavaScript (0.6%)
C (0.02%)
Cumulative downloads
Total Downloads
Last day
-5.3%
2,500
Compared to previous day
Last week
-5.4%
11,567
Compared to previous week
Last month
20.6%
48,155
Compared to previous month
Last year
305.4%
344,073
Compared to previous year
This repository is a monorepo and contains a collection of React Native modules for Adobe Experience Platform Mobile SDK as listed below. These modules can be found in the packages directory.
[!NOTE]
Since version 5.0.0 of the Adobe React Native SDK, all React Native libraries that share the same major version are compatible with each other.
[!NOTE]
The React Native libraries within this repository are specifically designed to support the Android and iOS platforms only.
Requires React Native (0.60.0 and above)
To submit iOS apps to the App Store, you must build them using Xcode 15 or later, as required by Apple.
[!IMPORTANT]
Adobe Experience Platform React Native 6.x libraries now depend on Experience Platform iOS 5.x SDKs, which have been updated to align with Apple's latest guidelines on privacy manifest. For further details on how Apple's privacy-related announcements affect the Adobe mobile SDK for iOS, please refer to this document.
React Native 0.7x introduced support for a new architecture. We don't yet support the new architecture.
Please refer to the Expo Integration document for guidance on integrating the SDK with Expo projects.
You need to install Adobe Experience Platform Mobile SDK with npm packages and configure the native Android/iOS project in your React Native project.
Note: If you are new to React Native, we suggest you follow the React Native Getting Started page before continuing.
Adobe Experience Platform Mobile SDK packages can be installed from npm command.
Note:
@adobe/react-native-aepcore
is required to be installed.
Install the @adobe/react-native-aep{extension}
package:
1cd MyReactApp 2npm install @adobe/react-native-aep{extension}
Alternatively, include the Adobe Experience Platform npm packages as dependencies in the app’s package.json.
The following code snippet shows for Mobile Core and Edge Network extensions as an example in package.json:
1... 2"dependencies": { 3 "react-native": "0.72.5", 4 "@adobe/react-native-aepcore": "^6.0.0", //core is required and includes aepcore, aepsignal, aeplifecycle, aepidentity libraries 5 "@adobe/react-native-aepedge": "^6.0.0", 6 "@adobe/react-native-aepedgeidentity": "^6.0.0", 7 "@adobe/react-native-aepedgeconsent": "^6.0.0", 8... 9},
Inside of the app directory, run
1#if using node package manager 2npm install
or
1#if using yarn package manager 2yarn install
For iOS development, after installing the plugins from npm, download the pod dependencies by running the following command:
1cd ios && pod install && cd ..
To update native dependencies to latest available versions, run the following command:
1cd ios && pod update && cd ..
Initializing the SDK should be done in native code inside your AppDelegate
(iOS) and MainApplication
(Android). The following code snippets demonstrate how to install and register the AEP Mobile Core and Edge Network extensions. Documentation on how to initialize each extension can be found in ./packages/{extension}/README.md.
1//AppDelegate.h 2@import AEPCore; 3@import AEPServices; 4@import AEPLifecycle; 5@import AEPSignal; 6@import AEPEdge; 7@import AEPEdgeIdentity; 8@import AEPEdgeConsent; 9...
1//AppDelegate.m 2... 3@implementation AppDelegate 4-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 5 [AEPMobileCore setLogLevel: AEPLogLevelDebug]; 6 [AEPMobileCore configureWithAppId:@"yourAppID"]; 7 8 const UIApplicationState appState = application.applicationState; 9 10 [AEPMobileCore registerExtensions: @[ 11 AEPMobileLifecycle.class, 12 AEPMobileSignal.class, 13 AEPMobileEdge.class, 14 AEPMobileEdgeIdentity.class, 15 AEPMobileEdgeConsent.class, 16 ] completion:^{ 17 if (appState != UIApplicationStateBackground) { 18 [AEPMobileCore lifecycleStart:nil}]; 19 } 20 }]; 21 return YES; 22} 23 24@end 25
To enable the Lifecycle metrics, implement the Lifecycle APIs
Hint : While running iOS application after Adobe Experience Platform SDK installation. If you have build error that states: "ld: warning: Could not find or use auto-linked library 'swiftCoreFoundation'" This is because Adobe Experience Platform SDK now requires the app uses swift interfaces. Add a dummy .swift file to your project to embed the swift standard libs. See the SampleApp presented in this repo for example.
1//MainApplication.java 2import com.adobe.marketing.mobile.AdobeCallback; 3import com.adobe.marketing.mobile.Extension; 4import com.adobe.marketing.mobile.LoggingMode; 5import com.adobe.marketing.mobile.MobileCore; 6import com.adobe.marketing.mobile.Lifecycle; 7import com.adobe.marketing.mobile.Signal; 8import com.adobe.marketing.mobile.Edge; 9import com.adobe.marketing.mobile.edge.consent.Consent; 10... 11import android.app.Application;
1... 2public class MainApplication extends Application implements ReactApplication { 3 ... 4 @Override 5 public void on Create(){ 6 super.onCreate(); 7 ... 8 MobileCore.setApplication(this); 9 MobileCore.setLogLevel(LoggingMode.DEBUG); 10 MobileCore.configureWithAppID("yourAppID"); 11 List<Class<? extends Extension>> extensions = Arrays.asList( 12 Lifecycle.EXTENSION, 13 Signal.EXTENSION, 14 Edge.EXTENSION, 15 com.adobe.marketing.mobile.edge.identity.Identity.EXTENSION, 16 Consent.EXTENSION); 17 MobileCore.registerExtensions(extensions, o -> { 18 Log.d(LOG_TAG, "AEP Mobile SDK is initialized"); 19 MobileCore.lifecycleStart(null); 20 //enable this for Lifecycle. See Note for collecting Lifecycle metrics. 21 }); 22 } 23}
1 // MainApplication.kt 2import com.adobe.marketing.mobile.Edge 3import com.adobe.marketing.mobile.Lifecycle 4import com.adobe.marketing.mobile.LoggingMode 5import com.adobe.marketing.mobile.MobileCore 6import com.adobe.marketing.mobile.MobileCore.getApplication 7import com.adobe.marketing.mobile.edge.consent.Consent 8import com.adobe.marketing.mobile.edge.identity.Identity
1// MainApplication.kt 2 class MainApplication : Application(), ReactApplication { 3 ... 4 override fun onCreate() { 5 super.onCreate() 6 7 MobileCore.setApplication(this); 8 MobileCore.setLogLevel(LoggingMode.DEBUG) 9 MobileCore.configureWithAppID("YOUR-APP-ID"); 10 MobileCore.registerExtensions( 11 listOf( 12 Lifecycle.EXTENSION, 13 Edge.EXTENSION, 14 Identity.EXTENSION, 15 Consent.EXTENSION 16 ), 17 ) { 18 Log.d("MainApp", "Adobe Experience Platform Mobile SDK was initialized") 19 } 20 21 SoLoader.init(this, false) 22 if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { 23 // If you opted-in for the New Architecture, we load the native entry point for this app. 24 load() 25 } 26 ApplicationLifecycleDispatcher.onApplicationCreate(this) 27 }
1// MainActivity.kt 2 3import android.app.Activity 4import android.app.Application.ActivityLifecycleCallbacks 5import com.adobe.marketing.mobile.MobileCore 6 7// Implementing global lifecycle callbacks 8override fun onCreate(savedInstanceState: Bundle?) { 9 // Set the theme to AppTheme BEFORE onCreate to support 10 // coloring the background, status bar, and navigation bar. 11 // This is required for expo-splash-screen. 12 setTheme(R.style.AppTheme); 13 super.onCreate(null) 14 15 application.registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks { 16 override fun onActivityResumed(activity: Activity) { 17 MobileCore.setApplication(application) 18 MobileCore.lifecycleStart(null) 19 } 20 21 override fun onActivityPaused(activity: Activity) { 22 MobileCore.lifecyclePause() 23 } 24 25 // the following methods aren't needed for our lifecycle purposes, but are 26 // required to be implemented by the ActivityLifecycleCallbacks object 27 override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {} 28 override fun onActivityStarted(activity: Activity) {} 29 override fun onActivityStopped(activity: Activity) {} 30 override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {} 31 override fun onActivityDestroyed(activity: Activity) {} 32 }) 33 }
For further details on Lifecycle implementation, please refer to the Lifecycle API documentation.
See migration.md for guidance on migrating from ACP React Native libraries.
1Use of '@import' when C++ modules are disabled, consider using -fmodules and -fcxx-modules
Refer to the solution here.
1Underlying Objective-C module 'AEPRulesEngine' not found
Refer to the solution here.
Contributions are welcomed! See CONTRIBUTING and development.md guides for more information.
This project is licensed under the Apache V2 License. See LICENSE for more information.
No vulnerabilities found.
Reason
all changesets reviewed
Reason
12 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Reason
no dangerous workflow patterns detected
Reason
license file detected
Details
Reason
security policy file detected
Details
Reason
binaries present in source code
Details
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
Reason
project is not fuzzed
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
14 existing vulnerabilities detected
Details
Score
Last Scanned on 2024-11-25
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More