From f24fe97ffada6e8c1cf3bd0c2d1cd414742be189 Mon Sep 17 00:00:00 2001 From: svc-devrev Date: Tue, 26 May 2026 12:59:17 +0000 Subject: [PATCH] [skip ci] Release v2.3.3 This PR contains the automated release updates for version 2.3.3. Changes: - Updated sample app - Updated documentation - Updated README, CHANGELOG, and MIGRATION guide --- CHANGELOG.md | 9 +- devrev-sdk-react-native-2.3.3.tgz | Bin 0 -> 47558 bytes sample/package.json | 2 +- .../ios/DevRevSDKSampleRN.entitlements | 2 +- .../project.pbxproj | 106 ++++++++---------- .../xcschemes/DevRevSDKSampleRN.xcscheme | 2 +- .../xcshareddata/WorkspaceSettings.xcsettings | 5 - .../react-native/ios/GoogleService-Info.plist | 36 ++---- sample/react-native/ios/Podfile | 33 ------ sample/react-native/ios/Podfile.lock | 42 ++----- sample/react-native/ios/Sources/Info.plist | 8 +- sample/react-native/ios/ab.plist | 30 ----- sample/react-native/src/App.tsx | 2 +- 13 files changed, 79 insertions(+), 198 deletions(-) create mode 100644 devrev-sdk-react-native-2.3.3.tgz delete mode 100644 sample/react-native/ios/DevRevSDKSampleRN.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings delete mode 100644 sample/react-native/ios/ab.plist 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 0000000000000000000000000000000000000000..16a2930635c91f49160ae4d9570b2cd4b55ce4ac GIT binary patch literal 47558 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 literal 0 HcmV?d00001 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) {