diff --git a/README.md b/README.md index 9c434fda..a6d8d4c1 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,10 @@ This repository is a monorepo and contains a collection of React Native modules | [@adobe/react-native-aeptarget](./packages/target) | [![npm version](https://badge.fury.io/js/%40adobe%2Freact-native-aeptarget.svg)](https://www.npmjs.com/package/@adobe/react-native-aeptarget) ![npm downloads](https://img.shields.io/npm/dm/@adobe/react-native-aeptarget) | [Target](https://developer.adobe.com/client-sdks/documentation/adobe-target) | [@adobe/react-native-aepcampaignclassic](./packages/campaignclassic) | [![npm version](https://badge.fury.io/js/%40adobe%2Freact-native-aepcampaignclassic.svg)](https://www.npmjs.com/package/@adobe/react-native-aepcampaignclassic) [![npm downloads](https://img.shields.io/npm/dm/@adobe/react-native-aepcampaignclassic)](https://www.npmjs.com/package/@adobe/react-native-aepcampaignclassic) |[CampaignClassic](https://developer.adobe.com/client-sdks/documentation/adobe-campaign-classic) -> [!NOTE] +> [!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] +> [!NOTE] > The React Native libraries within this repository are specifically designed to support the Android and iOS platforms only. @@ -40,7 +40,7 @@ To submit iOS apps to the App Store, you must build them using Xcode 15 or later ## iOS Privacy Manifest -> [!IMPORTANT] +> [!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](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files). For further details on how Apple's privacy-related announcements affect the Adobe mobile SDK for iOS, please refer to this [document](https://developer.adobe.com/client-sdks/resources/privacy-manifest/). ## React Native New Architecture Support @@ -226,6 +226,25 @@ Underlying Objective-C module 'AEPRulesEngine' not found ``` Refer to the solution [here](https://github.com/adobe/aepsdk-react-native/issues/263#issuecomment-1498393770). +## Integration with Expo + +The Adobe Experience Platform SDK is not supported in Expo managed workflow. However, you can use the SDK in the bare workflow. For more information, see the [Expo documentation](https://docs.expo.dev/bare/exploring-bare-workflow/). + +### Steps to work with Bare React Native workflow + +1. Install expo-modules using the following command: + +```bash +npx install-expo-modules@latest +``` + +2. Make sure the changes are reflected in the desired platform files. For example, in iOS, the changes should be reflected in the `Podfile`. Use this link to verify the changes: https://docs.expo.dev/bare/installing-expo-modules/#configuration-for-ios +3. Clean Xcode build folder and rebuild. +4. If you get an error “Import of C++ module 'Foundation' appears within extern "C" language linkage specification” in EXDefines.h file, then modify the following code snippet in the `EXDefines.h` file: + + 1. Move the `#import ` from line 82 and move it to end of file at line 115. + + ## Contributing Contributions are welcomed! See [CONTRIBUTING](CONTRIBUTING.md) and [development.md](./docs/development.md) guides for more information. diff --git a/apps/AEPSampleApp/.gitignore b/apps/AEPSampleApp/.gitignore index 0cab2ac6..ce53e3e2 100644 --- a/apps/AEPSampleApp/.gitignore +++ b/apps/AEPSampleApp/.gitignore @@ -64,3 +64,8 @@ yarn-error.log # testing /coverage + +# Expo +.expo +dist/ +web-build/ \ No newline at end of file diff --git a/apps/AEPSampleApp/App.tsx b/apps/AEPSampleApp/App.tsx index 57d3123f..89f04c70 100644 --- a/apps/AEPSampleApp/App.tsx +++ b/apps/AEPSampleApp/App.tsx @@ -11,7 +11,7 @@ governing permissions and limitations under the License. */ import * as React from 'react'; -import {Button, View} from 'react-native'; +import {Button, View, Text} from 'react-native'; import {createDrawerNavigator} from '@react-navigation/drawer'; import {NavigationContainer} from '@react-navigation/native'; import OptimizeView from './extensions/OptimizeView'; @@ -28,10 +28,12 @@ import TargetView from './extensions/TargetView'; import PlacesView from './extensions/PlacesView'; import {NavigationProps} from './types/props'; import CampaignClassicView from './extensions/CampaignClassicView'; +import Constants from 'expo-constants'; function HomeScreen({navigation}: NavigationProps) { return ( + Device Name: {Constants.deviceName}