diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f044a8..8960398 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,12 +4,19 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.3.3] - 2026-05-26 + +### Fixed +- [Android] Implemented web view masking for Canvas Technology. +- [Android] Fixed an issue with web view masking. +- [Android] Fixed an issue with masking displacement on fast scrolling. + ## [2.3.2] - 2026-05-12 ### Fixed - Fixed an issue where Ktor classes were getting stripped due to proguard rules. - Fixed an issue related to blank user identifier in identification calls. -- Added a fix for masking stability during scrolls. +- Added a fix for masking stability during scrolls. - Fixed an issue related to garbage characters in custom events. - Fixed an issue with empty crash types in iOS. - Fixed an issue with push notifications not being delivered in sandbox environments in iOS. diff --git a/devrev-sdk-react-native-2.3.3.tgz b/devrev-sdk-react-native-2.3.3.tgz new file mode 100644 index 0000000..16a2930 Binary files /dev/null and b/devrev-sdk-react-native-2.3.3.tgz differ diff --git a/sample/package.json b/sample/package.json index bcd3229..124fbe9 100644 --- a/sample/package.json +++ b/sample/package.json @@ -10,7 +10,7 @@ "build:ios": "react-native build-ios --scheme DevRevSDKSample --mode Debug --extra-params \"-sdk iphonesimulator CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ GCC_OPTIMIZATION_LEVEL=0 GCC_PRECOMPILE_PREFIX_HEADER=YES ASSETCATALOG_COMPILER_OPTIMIZATION=time DEBUG_INFORMATION_FORMAT=dwarf COMPILER_INDEX_STORE_ENABLE=NO\"" }, "dependencies": { - "@devrev/sdk-react-native": "^2.3.2", + "@devrev/sdk-react-native": "^2.3.3", "@notifee/react-native": "^9.1.3", "@react-native-community/cli-platform-ios": "^13.6.9", "@react-native-firebase/app": "^21.0.0", diff --git a/sample/react-native/ios/DevRevSDKSampleRN.entitlements b/sample/react-native/ios/DevRevSDKSampleRN.entitlements index 28c29bf..903def2 100644 --- a/sample/react-native/ios/DevRevSDKSampleRN.entitlements +++ b/sample/react-native/ios/DevRevSDKSampleRN.entitlements @@ -3,6 +3,6 @@ aps-environment - production + development diff --git a/sample/react-native/ios/DevRevSDKSampleRN.xcodeproj/project.pbxproj b/sample/react-native/ios/DevRevSDKSampleRN.xcodeproj/project.pbxproj index 921030c..203aae0 100644 --- a/sample/react-native/ios/DevRevSDKSampleRN.xcodeproj/project.pbxproj +++ b/sample/react-native/ios/DevRevSDKSampleRN.xcodeproj/project.pbxproj @@ -12,21 +12,21 @@ 1CA606002D13FC7000B2293B /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 1CA605FF2D13FC7000B2293B /* GoogleService-Info.plist */; }; 343065452DDCF35A009F6083 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 343065442DDCF35A009F6083 /* AppDelegate.swift */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; - 9A7308EF88995ACC89BC2D5E /* Pods_DevRevSDKSampleRN.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B805A1AA9820977AFB76CD04 /* Pods_DevRevSDKSampleRN.framework */; }; + EF1AA09255E944CC774FB0C1 /* Pods_DevRevSDKSampleRN.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3EE8C8BC611A9CAA5574249 /* Pods_DevRevSDKSampleRN.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 0D11B4630DE9A1CBBC436572 /* Pods-DevRevSDKSampleRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DevRevSDKSampleRN.release.xcconfig"; path = "Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN.release.xcconfig"; sourceTree = ""; }; 13B07F961A680F5B00A75B9A /* DevRevSDKSampleRN.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DevRevSDKSampleRN.app; sourceTree = BUILT_PRODUCTS_DIR; }; 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Sources/Images.xcassets; sourceTree = ""; }; 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Sources/Info.plist; sourceTree = ""; }; 1CA605FF2D13FC7000B2293B /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; 1CA606012D13FCE400B2293B /* DevRevSDKSampleRN.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DevRevSDKSampleRN.entitlements; sourceTree = ""; }; - 2B0E65D32F3CD21B96AC4526 /* Pods-DevRevSDKSampleRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DevRevSDKSampleRN.debug.xcconfig"; path = "Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN.debug.xcconfig"; sourceTree = ""; }; 343065442DDCF35A009F6083 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = Sources/AppDelegate.swift; sourceTree = ""; }; + 60508B310A9753744EE0782C /* Pods-DevRevSDKSampleRN.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DevRevSDKSampleRN.release.xcconfig"; path = "Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN.release.xcconfig"; sourceTree = ""; }; 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = Sources/LaunchScreen.storyboard; sourceTree = ""; }; + 8AC6DBD62B5701538664BE92 /* Pods-DevRevSDKSampleRN.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DevRevSDKSampleRN.debug.xcconfig"; path = "Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN.debug.xcconfig"; sourceTree = ""; }; A2B83FA1ACA1BE40552EEA27 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Sources/PrivacyInfo.xcprivacy; sourceTree = ""; }; - B805A1AA9820977AFB76CD04 /* Pods_DevRevSDKSampleRN.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_DevRevSDKSampleRN.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E3EE8C8BC611A9CAA5574249 /* Pods_DevRevSDKSampleRN.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_DevRevSDKSampleRN.framework; sourceTree = BUILT_PRODUCTS_DIR; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; /* End PBXFileReference section */ @@ -35,7 +35,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9A7308EF88995ACC89BC2D5E /* Pods_DevRevSDKSampleRN.framework in Frameworks */, + EF1AA09255E944CC774FB0C1 /* Pods_DevRevSDKSampleRN.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -59,7 +59,7 @@ isa = PBXGroup; children = ( ED297162215061F000B7C4FE /* JavaScriptCore.framework */, - B805A1AA9820977AFB76CD04 /* Pods_DevRevSDKSampleRN.framework */, + E3EE8C8BC611A9CAA5574249 /* Pods_DevRevSDKSampleRN.framework */, ); name = Frameworks; sourceTree = ""; @@ -105,8 +105,8 @@ BBD78D7AC51CEA395F1C20DB /* Pods */ = { isa = PBXGroup; children = ( - 2B0E65D32F3CD21B96AC4526 /* Pods-DevRevSDKSampleRN.debug.xcconfig */, - 0D11B4630DE9A1CBBC436572 /* Pods-DevRevSDKSampleRN.release.xcconfig */, + 8AC6DBD62B5701538664BE92 /* Pods-DevRevSDKSampleRN.debug.xcconfig */, + 60508B310A9753744EE0782C /* Pods-DevRevSDKSampleRN.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -118,15 +118,14 @@ isa = PBXNativeTarget; buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "DevRevSDKSampleRN" */; buildPhases = ( - 8B8627DD21B3CE1F1BC53627 /* [CP] Check Pods Manifest.lock */, + 79D99AFFD42C79566699A194 /* [CP] Check Pods Manifest.lock */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - 562D1844B67636292AE9C0EE /* [DevRev] Embed SPM Frameworks */, - 0613B587B6D102BCD69A3171 /* [CP] Embed Pods Frameworks */, - 723C2962CCD2DE0D7A350B3D /* [CP] Copy Pods Resources */, - 94ABE5EF039C55FDBA9B3116 /* [CP-User] [RNFB] Core Configuration */, + 9EEBE2A4BA4AAA08EBC649BE /* [CP] Embed Pods Frameworks */, + 2DB4C6E723704CE6C198EFF3 /* [CP] Copy Pods Resources */, + 84F618E3FF9BDBCFDD8C71E6 /* [CP-User] [RNFB] Core Configuration */, ); buildRules = ( ); @@ -199,42 +198,7 @@ shellPath = /bin/sh; shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n"; }; - 0613B587B6D102BCD69A3171 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN-frameworks-${CONFIGURATION}-input-files.xcfilelist", - ); - name = "[CP] Embed Pods Frameworks"; - outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN-frameworks-${CONFIGURATION}-output-files.xcfilelist", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 562D1844B67636292AE9C0EE /* [DevRev] Embed SPM Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "[DevRev] Embed SPM Frameworks"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "FRAMEWORKS_TO_EMBED=(\"DevRevSDK\")\nfor fw in \"${FRAMEWORKS_TO_EMBED[@]}\"; do\n FW_PATH=\"${BUILT_PRODUCTS_DIR}/PackageFrameworks/${fw}.framework\"\n if [ ! -d \"$FW_PATH\" ]; then\n FW_PATH=\"${BUILT_PRODUCTS_DIR}/${fw}.framework\"\n fi\n if [ -d \"$FW_PATH\" ]; then\n DEST=\"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}\"\n mkdir -p \"$DEST\"\n rsync -av --delete \"$FW_PATH\" \"$DEST/\"\n if [ \"${CODE_SIGNING_ALLOWED:-NO}\" = \"YES\" ] && [ -n \"${EXPANDED_CODE_SIGN_IDENTITY:-}\" ]; then\n codesign --force --sign \"${EXPANDED_CODE_SIGN_IDENTITY}\" --preserve-metadata=identifier,entitlements \"$DEST/${fw}.framework\"\n fi\n fi\ndone\n"; - }; - 723C2962CCD2DE0D7A350B3D /* [CP] Copy Pods Resources */ = { + 2DB4C6E723704CE6C198EFF3 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -251,7 +215,7 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 8B8627DD21B3CE1F1BC53627 /* [CP] Check Pods Manifest.lock */ = { + 79D99AFFD42C79566699A194 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -273,7 +237,7 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 94ABE5EF039C55FDBA9B3116 /* [CP-User] [RNFB] Core Configuration */ = { + 84F618E3FF9BDBCFDD8C71E6 /* [CP-User] [RNFB] Core Configuration */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -286,6 +250,23 @@ shellPath = /bin/sh; shellScript = "#!/usr/bin/env bash\n#\n# Copyright (c) 2016-present Invertase Limited & Contributors\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this library except in compliance with the License.\n# You may obtain a copy of the License at\n#\n# http://www.apache.org/licenses/LICENSE-2.0\n#\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n#\n\n##########################################################################\n##########################################################################\n#\n# NOTE THAT IF YOU CHANGE THIS FILE YOU MUST RUN pod install AFTERWARDS\n#\n# This file is installed as an Xcode build script in the project file\n# by cocoapods, and you will not see your changes until you pod install\n#\n##########################################################################\n##########################################################################\n\nset -e\n\n_MAX_LOOKUPS=2;\n_SEARCH_RESULT=''\n_RN_ROOT_EXISTS=''\n_CURRENT_LOOKUPS=1\n_JSON_ROOT=\"'react-native'\"\n_JSON_FILE_NAME='firebase.json'\n_JSON_OUTPUT_BASE64='e30=' # { }\n_CURRENT_SEARCH_DIR=${PROJECT_DIR}\n_PLIST_BUDDY=/usr/libexec/PlistBuddy\n_TARGET_PLIST=\"${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}\"\n_DSYM_PLIST=\"${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist\"\n\n# plist arrays\n_PLIST_ENTRY_KEYS=()\n_PLIST_ENTRY_TYPES=()\n_PLIST_ENTRY_VALUES=()\n\nfunction setPlistValue {\n echo \"info: setting plist entry '$1' of type '$2' in file '$4'\"\n ${_PLIST_BUDDY} -c \"Add :$1 $2 '$3'\" $4 || echo \"info: '$1' already exists\"\n}\n\nfunction getFirebaseJsonKeyValue () {\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$1'); puts output[$_JSON_ROOT]['$2']\"\n else\n echo \"\"\n fi;\n}\n\nfunction jsonBoolToYesNo () {\n if [[ $1 == \"false\" ]]; then\n echo \"NO\"\n elif [[ $1 == \"true\" ]]; then\n echo \"YES\"\n else echo \"NO\"\n fi\n}\n\necho \"info: -> RNFB build script started\"\necho \"info: 1) Locating ${_JSON_FILE_NAME} file:\"\n\nif [[ -z ${_CURRENT_SEARCH_DIR} ]]; then\n _CURRENT_SEARCH_DIR=$(pwd)\nfi;\n\nwhile true; do\n _CURRENT_SEARCH_DIR=$(dirname \"$_CURRENT_SEARCH_DIR\")\n if [[ \"$_CURRENT_SEARCH_DIR\" == \"/\" ]] || [[ ${_CURRENT_LOOKUPS} -gt ${_MAX_LOOKUPS} ]]; then break; fi;\n echo \"info: ($_CURRENT_LOOKUPS of $_MAX_LOOKUPS) Searching in '$_CURRENT_SEARCH_DIR' for a ${_JSON_FILE_NAME} file.\"\n _SEARCH_RESULT=$(find \"$_CURRENT_SEARCH_DIR\" -maxdepth 2 -name ${_JSON_FILE_NAME} -print | /usr/bin/head -n 1)\n if [[ ${_SEARCH_RESULT} ]]; then\n echo \"info: ${_JSON_FILE_NAME} found at $_SEARCH_RESULT\"\n break;\n fi;\n _CURRENT_LOOKUPS=$((_CURRENT_LOOKUPS+1))\ndone\n\nif [[ ${_SEARCH_RESULT} ]]; then\n _JSON_OUTPUT_RAW=$(cat \"${_SEARCH_RESULT}\")\n _RN_ROOT_EXISTS=$(ruby -Ku -e \"require 'rubygems';require 'json'; output=JSON.parse('$_JSON_OUTPUT_RAW'); puts output[$_JSON_ROOT]\" || echo '')\n\n if [[ ${_RN_ROOT_EXISTS} ]]; then\n if ! python3 --version >/dev/null 2>&1; then echo \"python3 not found, firebase.json file processing error.\" && exit 1; fi\n _JSON_OUTPUT_BASE64=$(python3 -c 'import json,sys,base64;print(base64.b64encode(bytes(json.dumps(json.loads(open('\"'${_SEARCH_RESULT}'\"', '\"'rb'\"').read())['${_JSON_ROOT}']), '\"'utf-8'\"')).decode())' || echo \"e30=\")\n fi\n\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n\n # config.app_data_collection_default_enabled\n _APP_DATA_COLLECTION_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_data_collection_default_enabled\")\n if [[ $_APP_DATA_COLLECTION_ENABLED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseDataCollectionDefaultEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_DATA_COLLECTION_ENABLED\")\")\n fi\n\n # config.analytics_auto_collection_enabled\n _ANALYTICS_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_auto_collection_enabled\")\n if [[ $_ANALYTICS_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_COLLECTION\")\")\n fi\n\n # config.analytics_collection_deactivated\n _ANALYTICS_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_collection_deactivated\")\n if [[ $_ANALYTICS_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"FIREBASE_ANALYTICS_COLLECTION_DEACTIVATED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_DEACTIVATED\")\")\n fi\n\n # config.analytics_idfv_collection_enabled\n _ANALYTICS_IDFV_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_idfv_collection_enabled\")\n if [[ $_ANALYTICS_IDFV_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_IDFV_COLLECTION_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_IDFV_COLLECTION\")\")\n fi\n\n # config.analytics_default_allow_analytics_storage\n _ANALYTICS_STORAGE=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_analytics_storage\")\n if [[ $_ANALYTICS_STORAGE ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_ANALYTICS_STORAGE\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_STORAGE\")\")\n fi\n\n # config.analytics_default_allow_ad_storage\n _ANALYTICS_AD_STORAGE=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_storage\")\n if [[ $_ANALYTICS_AD_STORAGE ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_STORAGE\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AD_STORAGE\")\")\n fi\n\n # config.analytics_default_allow_ad_user_data\n _ANALYTICS_AD_USER_DATA=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_user_data\")\n if [[ $_ANALYTICS_AD_USER_DATA ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_USER_DATA\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AD_USER_DATA\")\")\n fi\n\n # config.analytics_default_allow_ad_personalization_signals\n _ANALYTICS_PERSONALIZATION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"analytics_default_allow_ad_personalization_signals\")\n if [[ $_ANALYTICS_PERSONALIZATION ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_DEFAULT_ALLOW_AD_PERSONALIZATION_SIGNALS\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_PERSONALIZATION\")\")\n fi\n\n # config.analytics_registration_with_ad_network_enabled\n _ANALYTICS_REGISTRATION_WITH_AD_NETWORK=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_registration_with_ad_network_enabled\")\n if [[ $_ANALYTICS_REGISTRATION_WITH_AD_NETWORK ]]; then\n _PLIST_ENTRY_KEYS+=(\"GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_REGISTRATION_WITH_AD_NETWORK\")\")\n fi\n\n # config.google_analytics_automatic_screen_reporting_enabled\n _ANALYTICS_AUTO_SCREEN_REPORTING=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"google_analytics_automatic_screen_reporting_enabled\")\n if [[ $_ANALYTICS_AUTO_SCREEN_REPORTING ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAutomaticScreenReportingEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_ANALYTICS_AUTO_SCREEN_REPORTING\")\")\n fi\n\n # config.perf_auto_collection_enabled\n _PERF_AUTO_COLLECTION=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_auto_collection_enabled\")\n if [[ $_PERF_AUTO_COLLECTION ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_enabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_AUTO_COLLECTION\")\")\n fi\n\n # config.perf_collection_deactivated\n _PERF_DEACTIVATED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"perf_collection_deactivated\")\n if [[ $_PERF_DEACTIVATED ]]; then\n _PLIST_ENTRY_KEYS+=(\"firebase_performance_collection_deactivated\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_PERF_DEACTIVATED\")\")\n fi\n\n # config.messaging_auto_init_enabled\n _MESSAGING_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"messaging_auto_init_enabled\")\n if [[ $_MESSAGING_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseMessagingAutoInitEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_MESSAGING_AUTO_INIT\")\")\n fi\n\n # config.in_app_messaging_auto_colllection_enabled\n _FIAM_AUTO_INIT=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"in_app_messaging_auto_collection_enabled\")\n if [[ $_FIAM_AUTO_INIT ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseInAppMessagingAutomaticDataCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_FIAM_AUTO_INIT\")\")\n fi\n\n # config.app_check_token_auto_refresh\n _APP_CHECK_TOKEN_AUTO_REFRESH=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"app_check_token_auto_refresh\")\n if [[ $_APP_CHECK_TOKEN_AUTO_REFRESH ]]; then\n _PLIST_ENTRY_KEYS+=(\"FirebaseAppCheckTokenAutoRefreshEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"$(jsonBoolToYesNo \"$_APP_CHECK_TOKEN_AUTO_REFRESH\")\")\n fi\n\n # config.crashlytics_disable_auto_disabler - undocumented for now - mainly for debugging, document if becomes useful\n _CRASHLYTICS_AUTO_DISABLE_ENABLED=$(getFirebaseJsonKeyValue \"$_JSON_OUTPUT_RAW\" \"crashlytics_disable_auto_disabler\")\n if [[ $_CRASHLYTICS_AUTO_DISABLE_ENABLED == \"true\" ]]; then\n echo \"Disabled Crashlytics auto disabler.\" # do nothing\n else\n _PLIST_ENTRY_KEYS+=(\"FirebaseCrashlyticsCollectionEnabled\")\n _PLIST_ENTRY_TYPES+=(\"bool\")\n _PLIST_ENTRY_VALUES+=(\"NO\")\n fi\nelse\n _PLIST_ENTRY_KEYS+=(\"firebase_json_raw\")\n _PLIST_ENTRY_TYPES+=(\"string\")\n _PLIST_ENTRY_VALUES+=(\"$_JSON_OUTPUT_BASE64\")\n echo \"warning: A firebase.json file was not found, whilst this file is optional it is recommended to include it to configure firebase services in React Native Firebase.\"\nfi;\n\necho \"info: 2) Injecting Info.plist entries: \"\n\n# Log out the keys we're adding\nfor i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n echo \" -> $i) ${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\"\ndone\n\nfor plist in \"${_TARGET_PLIST}\" \"${_DSYM_PLIST}\" ; do\n if [[ -f \"${plist}\" ]]; then\n\n # paths with spaces break the call to setPlistValue. temporarily modify\n # the shell internal field separator variable (IFS), which normally\n # includes spaces, to consist only of line breaks\n oldifs=$IFS\n IFS=\"\n\"\n\n for i in \"${!_PLIST_ENTRY_KEYS[@]}\"; do\n setPlistValue \"${_PLIST_ENTRY_KEYS[$i]}\" \"${_PLIST_ENTRY_TYPES[$i]}\" \"${_PLIST_ENTRY_VALUES[$i]}\" \"${plist}\"\n done\n\n # restore the original internal field separator value\n IFS=$oldifs\n else\n echo \"warning: A Info.plist build output file was not found (${plist})\"\n fi\ndone\n\necho \"info: <- RNFB build script finished\"\n"; }; + 9EEBE2A4BA4AAA08EBC649BE /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-DevRevSDKSampleRN/Pods-DevRevSDKSampleRN-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -302,13 +283,13 @@ /* Begin XCBuildConfiguration section */ 13B07F941A680F5B00A75B9A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2B0E65D32F3CD21B96AC4526 /* Pods-DevRevSDKSampleRN.debug.xcconfig */; + baseConfigurationReference = 8AC6DBD62B5701538664BE92 /* Pods-DevRevSDKSampleRN.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = DevRevSDKSampleRN.entitlements; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = NJDA6Y3XRS; + DEVELOPMENT_TEAM = ""; ENABLE_BITCODE = NO; INFOPLIST_FILE = Sources/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -321,7 +302,7 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = ai.devrev.mobile.dev; + PRODUCT_BUNDLE_IDENTIFIER = ai.devrev.sdk.bridge.reactnative.sample; PRODUCT_NAME = DevRevSDKSampleRN; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; @@ -331,15 +312,13 @@ }; 13B07F951A680F5B00A75B9A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0D11B4630DE9A1CBBC436572 /* Pods-DevRevSDKSampleRN.release.xcconfig */; + baseConfigurationReference = 60508B310A9753744EE0782C /* Pods-DevRevSDKSampleRN.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = DevRevSDKSampleRN.entitlements; - CODE_SIGN_IDENTITY = "Apple Development"; - CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; - DEVELOPMENT_TEAM = NJDA6Y3XRS; + DEVELOPMENT_TEAM = ""; INFOPLIST_FILE = Sources/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -353,7 +332,6 @@ ); PRODUCT_BUNDLE_IDENTIFIER = ai.devrev.sdk.bridge.reactnative.sample; PRODUCT_NAME = DevRevSDKSampleRN; - PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; }; @@ -443,7 +421,10 @@ "-DFOLLY_CFG_NO_COROUTINES=1", "-DFOLLY_HAVE_CLOCK_GETTIME=1", ); - OTHER_LDFLAGS = "$(inherited) "; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG"; @@ -527,7 +508,10 @@ "-DFOLLY_CFG_NO_COROUTINES=1", "-DFOLLY_HAVE_CLOCK_GETTIME=1", ); - OTHER_LDFLAGS = "$(inherited) "; + OTHER_LDFLAGS = ( + "$(inherited)", + " ", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; USE_HERMES = true; diff --git a/sample/react-native/ios/DevRevSDKSampleRN.xcodeproj/xcshareddata/xcschemes/DevRevSDKSampleRN.xcscheme b/sample/react-native/ios/DevRevSDKSampleRN.xcodeproj/xcshareddata/xcschemes/DevRevSDKSampleRN.xcscheme index ddb460f..d3c6ac5 100644 --- a/sample/react-native/ios/DevRevSDKSampleRN.xcodeproj/xcshareddata/xcschemes/DevRevSDKSampleRN.xcscheme +++ b/sample/react-native/ios/DevRevSDKSampleRN.xcodeproj/xcshareddata/xcschemes/DevRevSDKSampleRN.xcscheme @@ -31,7 +31,7 @@ shouldAutocreateTestPlan = "YES"> - - - - diff --git a/sample/react-native/ios/GoogleService-Info.plist b/sample/react-native/ios/GoogleService-Info.plist index 50d3c49..ba10bf1 100644 --- a/sample/react-native/ios/GoogleService-Info.plist +++ b/sample/react-native/ios/GoogleService-Info.plist @@ -2,29 +2,15 @@ - API_KEY - AIzaSyAP61uxqfXCAvpmtqPU_k5XR35Kmx2IU-c - GCM_SENDER_ID - 91712188040 - PLIST_VERSION - 1 - BUNDLE_ID - ai.devrev.sdk.sample.swiftui - PROJECT_ID - devrev-sdk-samples - STORAGE_BUCKET - devrev-sdk-samples.firebasestorage.app - IS_ADS_ENABLED - - IS_ANALYTICS_ENABLED - - IS_APPINVITE_ENABLED - - IS_GCM_ENABLED - - IS_SIGNIN_ENABLED - - GOOGLE_APP_ID - 1:91712188040:ios:8dbb42b4deb282afdf393d + API_KEY + DUMMY_API_KEY + CLIENT_ID + DUMMY_CLIENT_ID + GOOGLE_APP_ID + 1:1234567890:ios:abcdef123456 + PROJECT_ID + dummy-project + BUNDLE_ID + ai.devrev.sdk.bridge.reactnative.sample - \ No newline at end of file + diff --git a/sample/react-native/ios/Podfile b/sample/react-native/ios/Podfile index 14eaa41..90c2000 100644 --- a/sample/react-native/ios/Podfile +++ b/sample/react-native/ios/Podfile @@ -30,38 +30,5 @@ target 'DevRevSDKSampleRN' do :mac_catalyst_enabled => false, # :ccache_enabled => true ) - - # Embed SPM-resolved DevRevSDK.framework into the app bundle. - # The spm_dependency in the podspec links DevRevSDK to the pod target, - # but does not embed it in the app — causing a dyld "Library not loaded" crash. - project_path = File.join(__dir__, "DevRevSDKSampleRN.xcodeproj") - project = Xcodeproj::Project.open(project_path) - app_target = project.targets.find { |t| t.name == "DevRevSDKSampleRN" } - - if app_target - phase_name = "[DevRev] Embed SPM Frameworks" - existing = app_target.shell_script_build_phases.find { |p| p.name == phase_name } - unless existing - phase = app_target.new_shell_script_build_phase(phase_name) - phase.shell_script = <<~'SCRIPT' - FRAMEWORKS_TO_EMBED=("DevRevSDK") - for fw in "${FRAMEWORKS_TO_EMBED[@]}"; do - FW_PATH="${BUILT_PRODUCTS_DIR}/PackageFrameworks/${fw}.framework" - if [ ! -d "$FW_PATH" ]; then - FW_PATH="${BUILT_PRODUCTS_DIR}/${fw}.framework" - fi - if [ -d "$FW_PATH" ]; then - DEST="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" - mkdir -p "$DEST" - rsync -av --delete "$FW_PATH" "$DEST/" - if [ "${CODE_SIGNING_ALLOWED:-NO}" = "YES" ] && [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" ]; then - codesign --force --sign "${EXPANDED_CODE_SIGN_IDENTITY}" --preserve-metadata=identifier,entitlements "$DEST/${fw}.framework" - fi - fi - done - SCRIPT - end - project.save - end end end diff --git a/sample/react-native/ios/Podfile.lock b/sample/react-native/ios/Podfile.lock index 1987c68..3ea947a 100644 --- a/sample/react-native/ios/Podfile.lock +++ b/sample/react-native/ios/Podfile.lock @@ -2,7 +2,7 @@ PODS: - boost (1.84.0) - BVLinearGradient (2.8.3): - React-Core - - devrev-sdk-react-native (2.3.2): + - devrev-sdk-react-native (2.3.1): - DoubleConversion - glog - hermes-engine @@ -1933,7 +1933,7 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - Yoga - - RNPermissions (5.5.1): + - RNSVG (15.15.4): - DoubleConversion - glog - hermes-engine @@ -1956,33 +1956,9 @@ PODS: - ReactCodegen - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core + - RNSVG/common (= 15.15.4) - Yoga - - RNSVG (15.15.5): - - DoubleConversion - - glog - - hermes-engine - - RCT-Folly (= 2024.11.18.00) - - RCTRequired - - RCTTypeSafety - - React-Core - - React-debug - - React-Fabric - - React-featureflags - - React-graphics - - React-hermes - - React-ImageManager - - React-jsi - - React-NativeModulesApple - - React-RCTFabric - - React-renderercss - - React-rendererdebug - - React-utils - - ReactCodegen - - ReactCommon/turbomodule/bridging - - ReactCommon/turbomodule/core - - RNSVG/common (= 15.15.5) - - Yoga - - RNSVG/common (15.15.5): + - RNSVG/common (15.15.4): - DoubleConversion - glog - hermes-engine @@ -2099,7 +2075,6 @@ DEPENDENCIES: - "RNFBInstallations (from `../node_modules/@react-native-firebase/installations`)" - "RNFBMessaging (from `../node_modules/@react-native-firebase/messaging`)" - RNGestureHandler (from `../node_modules/react-native-gesture-handler`) - - RNPermissions (from `../node_modules/react-native-permissions`) - RNSVG (from `../node_modules/react-native-svg`) - VisionCamera (from `../node_modules/react-native-vision-camera`) - Yoga (from `../node_modules/react-native/ReactCommon/yoga`) @@ -2283,8 +2258,6 @@ EXTERNAL SOURCES: :path: "../node_modules/@react-native-firebase/messaging" RNGestureHandler: :path: "../node_modules/react-native-gesture-handler" - RNPermissions: - :path: "../node_modules/react-native-permissions" RNSVG: :path: "../node_modules/react-native-svg" VisionCamera: @@ -2295,7 +2268,7 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90 BVLinearGradient: cb006ba232a1f3e4f341bb62c42d1098c284da70 - devrev-sdk-react-native: 146e6600a96c7bdb545e45c8d9af0aadd5fdf0f2 + devrev-sdk-react-native: c39d15eaac67cdb71efbf3b939baffd9a34fcf32 DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb fast_float: 06eeec4fe712a76acc9376682e4808b05ce978b6 FBLazyVector: b60fe06f0f15b7d7408f169442176e69e8eeacde @@ -2385,12 +2358,11 @@ SPEC CHECKSUMS: RNFBInstallations: 0af3ed83ee414205ae466cc5dde4864c01179f99 RNFBMessaging: 6857871d9dff8f26b0c325fc7d97ba69cb77d213 RNGestureHandler: ee4fab31b7325a6090ccd19392800a5e0911a2d5 - RNPermissions: a1e9844aad4410e084c81ce16458cd6befbf86aa - RNSVG: 76243ae0219c97fc021489356341a1d044b08466 + RNSVG: 0917f41364761ab9f5f488a51c3d10428c3c8dd1 SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748 VisionCamera: 7187b3dac1ff3071234ead959ce311875748e14f Yoga: fce72270ebed754904bbe5e18bb05cda3c3075db -PODFILE CHECKSUM: 17c41740150e0aa30fa43f2bef2bda13b6c352b6 +PODFILE CHECKSUM: 77a3bbff7d76f2ae1551ede8ef62e45eff2a9e3b COCOAPODS: 1.16.2 diff --git a/sample/react-native/ios/Sources/Info.plist b/sample/react-native/ios/Sources/Info.plist index 5247d68..508207f 100644 --- a/sample/react-native/ios/Sources/Info.plist +++ b/sample/react-native/ios/Sources/Info.plist @@ -31,14 +31,14 @@ NSAllowsLocalNetworking - NSCameraUsageDescription - This app needs access to your camera to take photos NSLocationWhenInUseUsageDescription - NSPhotoLibraryAddUsageDescription - This app needs permission to save photos to your library + NSCameraUsageDescription + This app needs access to your camera to take photos NSPhotoLibraryUsageDescription This app needs access to your photo library to select photos + NSPhotoLibraryAddUsageDescription + This app needs permission to save photos to your library UIBackgroundModes remote-notification diff --git a/sample/react-native/ios/ab.plist b/sample/react-native/ios/ab.plist deleted file mode 100644 index eead124..0000000 --- a/sample/react-native/ios/ab.plist +++ /dev/null @@ -1,30 +0,0 @@ - - - - - API_KEY - AIzaSyCPhIrzLPPDw6yeEAemKq2DR3doq2iWtC8 - GCM_SENDER_ID - 237385117319 - PLIST_VERSION - 1 - BUNDLE_ID - ai.devrev.mobile.dev - PROJECT_ID - app-devrev-dev - STORAGE_BUCKET - app-devrev-dev.firebasestorage.app - IS_ADS_ENABLED - - IS_ANALYTICS_ENABLED - - IS_APPINVITE_ENABLED - - IS_GCM_ENABLED - - IS_SIGNIN_ENABLED - - GOOGLE_APP_ID - 1:237385117319:ios:82eb9d5d8c51b079281222 - - \ No newline at end of file diff --git a/sample/react-native/src/App.tsx b/sample/react-native/src/App.tsx index 2417ae8..2439f77 100644 --- a/sample/react-native/src/App.tsx +++ b/sample/react-native/src/App.tsx @@ -131,7 +131,7 @@ const createScreen = ( const App = () => { React.useEffect(() => { try { - DevRev.configure('DvRvStPZG9uOmNvcmU6ZHZydi11cy0xOmRldm8vM2ZBSEVDOnBsdWdfc2V0dGluZy8xX198fF9fMjAyNC0wNy0yOSAwOTozMjoxNC4xNjU1Mjc4NTggKzAwMDAgVVRDxlxendsDvRv'); + DevRev.configure('YOUR_APP_ID'); DevRev.setShouldDismissModalsOnOpenLink(true); PushNotificationsService.configure(); } catch (error) {