airbridge-react-native-sdk-restricted 4.1.5 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/.github/workflows/build.yml +191 -10
  2. package/airbridge-react-native-sdk-restricted.podspec +1 -0
  3. package/airbridge_sdk.json +2 -2
  4. package/android/build.gradle +14 -5
  5. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeReactNative.kt +43 -24
  6. package/android/src/main/java/co/ab180/airbridge/reactnative/common/AirbridgeJSON.kt +22 -0
  7. package/android/src/main/java/co/ab180/airbridge/reactnative/extension/JSONConvert.kt +1 -1
  8. package/build/source/Airbridge.js +1 -1
  9. package/build/source/Airbridge.js.map +1 -1
  10. package/changelog.md +16 -0
  11. package/ios/AirbridgeReactNative/AirbridgeReactNative.swift +44 -3
  12. package/ios/copy-airbridge-json.rb +3 -2
  13. package/ios/create-library-info-json.rb +26 -0
  14. package/package.json +1 -1
  15. package/qa/airbridge_qa.json +1 -1
  16. package/qa/ios/AirbridgeQA/APNsSetting.h +11 -0
  17. package/qa/ios/AirbridgeQA/APNsSetting.m +20 -0
  18. package/qa/ios/AirbridgeQA/AppDelegate.mm +15 -0
  19. package/qa/ios/AirbridgeQA/Bridging-Header.h +8 -0
  20. package/qa/ios/AirbridgeQA/IdentifiersInteractor.m +2 -0
  21. package/qa/ios/AirbridgeQA/IdentifiersInteractor.swift +17 -0
  22. package/qa/ios/AirbridgeQA/Info.plist +1 -0
  23. package/qa/ios/AirbridgeQA.xcodeproj/project.pbxproj +33 -2
  24. package/qa/ios/Podfile.lock +51 -32
  25. package/qa/package-lock.json +9857 -5589
  26. package/qa/source/App.js +1 -1
  27. package/qa/source/common/FCMService.js +35 -5
  28. package/qa/source/pages/AppInfo.js +1 -0
  29. package/script/BuildQA.sh +4 -7
  30. package/script/ChangeRestricted.sh +1 -0
  31. package/source/Airbridge.ts +1 -1
@@ -0,0 +1,26 @@
1
+ require 'xcodeproj'
2
+ require 'pathname'
3
+
4
+ current_directory=File.dirname(__FILE__)
5
+
6
+ ios_project_directory=`cd #{current_directory}; cd ../../../ios; pwd`.gsub("\n", "")
7
+ ios_project_file=File.join(
8
+ ios_project_directory,
9
+ `cd #{ios_project_directory}; find . -maxdepth 1 -name "*.xcodeproj" | tail -1`,
10
+ ).gsub("\n", "")
11
+
12
+ package=JSON.parse(File.read(File.join(current_directory, '..', 'package.json')))
13
+ project = Xcodeproj::Project.open(ios_project_file)
14
+ target = project.targets.first
15
+ phase = target.shell_script_build_phases().select {|phase| phase.name == "[Airbridge] Create LibraryInfo.json"}[0]
16
+ script = (
17
+ "echo '{\"wrapperName\": \"" + package["name"] + "\", \"wrapperVersion\": \"" + package["version"] + "\"}' > \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/LibraryInfo.json\"" + "\n"
18
+ )
19
+ if phase == nil
20
+ phase = target.new_shell_script_build_phase("[Airbridge] Create LibraryInfo.json")
21
+ end
22
+ if phase.shell_script != script
23
+ phase.shell_script = script
24
+ end
25
+
26
+ project.save()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "airbridge-react-native-sdk-restricted",
3
- "version": "4.1.5",
3
+ "version": "4.2.0",
4
4
  "description": "Airbridge SDK for React Native",
5
5
  "main": "build/source/module.js",
6
6
  "types": "build/source/module.d.ts",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "intenral_library": {
3
3
  "ios_version": null,
4
- "android_version": "4.1.2-build-+"
4
+ "android_version": "4.2.0-build-+"
5
5
  }
6
6
  }
@@ -0,0 +1,11 @@
1
+ //
2
+ // APNsSwizzler.h
3
+ // AirbridgeQA
4
+ //
5
+ // Created by SangRyel Do on 2/4/25.
6
+ //
7
+
8
+ #import <Foundation/Foundation.h>
9
+ @interface APNsSetting : NSObject
10
+ @property (class, nonatomic, strong) NSString *apns;
11
+ @end
@@ -0,0 +1,20 @@
1
+ //
2
+ // APNsSetting.m
3
+ // AirbridgeQA
4
+ //
5
+ // Created by SangRyel Do on 2/4/25.
6
+ //
7
+ #import "APNsSetting.h"
8
+
9
+ @implementation APNsSetting
10
+ static NSString *_apns = nil;
11
+
12
+ + (NSString *)apns {
13
+ return _apns;
14
+ }
15
+
16
+ + (void)setApns:(NSString *)apns {
17
+ _apns = [apns copy];
18
+ }
19
+
20
+ @end
@@ -12,6 +12,8 @@
12
12
  #import <WebKit/WebKit.h>
13
13
  #import <AppTrackingTransparency/AppTrackingTransparency.h>
14
14
 
15
+ #import "APNsSetting.h"
16
+
15
17
  @interface AirbridgeReactNative ()
16
18
 
17
19
  + (void)initializeSDKWithName:(NSString*)name
@@ -32,6 +34,9 @@
32
34
  [FIRApp configure];
33
35
  [self swizzleWebViewAlert];
34
36
 
37
+ // 권한 요청 없이 APNs 등록
38
+ [[UIApplication sharedApplication] registerForRemoteNotifications];
39
+
35
40
  SDKConfiguration* configuration = [SDKConfigurationManager.shared load];
36
41
  if (configuration == nil) {
37
42
  [SDKConfigurationManager.shared resetAndReturnError:nil];
@@ -61,6 +66,16 @@
61
66
  return [super application:application didFinishLaunchingWithOptions:launchOptions];
62
67
  }
63
68
 
69
+ - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
70
+ const unsigned char *bytes = (const unsigned char *)[deviceToken bytes];
71
+ NSMutableString* apns = [[NSMutableString alloc] initWithCapacity:deviceToken.length * 2];
72
+ for (int i=0; i<deviceToken.length; i++) {
73
+ [apns appendFormat:@"%02x", bytes[i]];
74
+ }
75
+ [APNsSetting setApns:apns];
76
+ NSLog(@"[app] AppDelegate setApns : %@", apns);
77
+ }
78
+
64
79
  - (void)swizzleWebViewAlert {
65
80
  SEL selector = NSSelectorFromString(@"webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:completionHandler:");
66
81
  Method method = class_getInstanceMethod(NSClassFromString(@"RNCWebViewImpl"), selector);
@@ -0,0 +1,8 @@
1
+ //
2
+ // Bridging-Header.h
3
+ // AirbridgeQA
4
+ //
5
+ // Created by SangRyel Do on 2/5/25.
6
+ //
7
+
8
+ #import "APNsSetting.h"
@@ -11,4 +11,6 @@
11
11
 
12
12
  RCT_EXTERN_METHOD(identifiers:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
13
13
 
14
+ RCT_EXTERN_METHOD(apnsToken:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
15
+
14
16
  @end
@@ -33,4 +33,21 @@ class IdentifiersInteractor: NSObject {
33
33
  "idfv": UIDevice.current.identifierForVendor?.uuidString
34
34
  ])
35
35
  }
36
+
37
+ @objc(apnsToken:reject:)
38
+ func apnsToken(
39
+ resolve: @escaping RCTPromiseResolveBlock,
40
+ reject: @escaping RCTPromiseRejectBlock
41
+ ) {
42
+ let response: [AnyHashable: Any]
43
+ if let apnsToken = APNsSetting.apns {
44
+ response = ["responseCode": 200, "data": apnsToken]
45
+ } else {
46
+ response = ["responseCode": 202]
47
+ }
48
+ resolve(String(
49
+ data: try! JSONSerialization.data(withJSONObject: response),
50
+ encoding: .utf8
51
+ ))
52
+ }
36
53
  }
@@ -55,6 +55,7 @@
55
55
  <key>UIBackgroundModes</key>
56
56
  <array>
57
57
  <string>remote-notification</string>
58
+ <string>fetch</string>
58
59
  </array>
59
60
  <key>UILaunchStoryboardName</key>
60
61
  <string>LaunchScreen</string>
@@ -15,6 +15,8 @@
15
15
  20D0876B7957883E58D87769 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 509084115650365DDB501091 /* PrivacyInfo.xcprivacy */; };
16
16
  7699B88040F8A987B510C191 /* libPods-AirbridgeQA-AirbridgeQATests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AirbridgeQA-AirbridgeQATests.a */; };
17
17
  81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
18
+ 9FEEF72A2D5233C20024EBC7 /* APNsSetting.m in Resources */ = {isa = PBXBuildFile; fileRef = 9FEEF7292D5233BD0024EBC7 /* APNsSetting.m */; };
19
+ 9FEEF72B2D5236F90024EBC7 /* APNsSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FEEF7292D5233BD0024EBC7 /* APNsSetting.m */; };
18
20
  C32569CA2C252200005224AD /* PermissionInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C32569C92C252200005224AD /* PermissionInteractor.swift */; };
19
21
  C32569CD2C2523F9005224AD /* PermissionInteractor.m in Sources */ = {isa = PBXBuildFile; fileRef = C32569CC2C2523F9005224AD /* PermissionInteractor.m */; };
20
22
  C3A5047A2C291A32003D3C3C /* IdentifiersInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3A504792C291A32003D3C3C /* IdentifiersInteractor.swift */; };
@@ -42,7 +44,7 @@
42
44
  13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = AirbridgeQA/AppDelegate.h; sourceTree = "<group>"; };
43
45
  13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = AirbridgeQA/AppDelegate.mm; sourceTree = "<group>"; };
44
46
  13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = AirbridgeQA/Images.xcassets; sourceTree = "<group>"; };
45
- 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AirbridgeQA/Info.plist; sourceTree = "<group>"; };
47
+ 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = AirbridgeQA/Info.plist; sourceTree = SOURCE_ROOT; };
46
48
  13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = AirbridgeQA/main.m; sourceTree = "<group>"; };
47
49
  19F6CBCC0A4E27FBF8BF4A61 /* libPods-AirbridgeQA-AirbridgeQATests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AirbridgeQA-AirbridgeQATests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
48
50
  3B4392A12AC88292D35C810B /* Pods-AirbridgeQA.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirbridgeQA.debug.xcconfig"; path = "Target Support Files/Pods-AirbridgeQA/Pods-AirbridgeQA.debug.xcconfig"; sourceTree = "<group>"; };
@@ -52,6 +54,9 @@
52
54
  5DCACB8F33CDC322A6C60F78 /* libPods-AirbridgeQA.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AirbridgeQA.a"; sourceTree = BUILT_PRODUCTS_DIR; };
53
55
  81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = AirbridgeQA/LaunchScreen.storyboard; sourceTree = "<group>"; };
54
56
  89C6BE57DB24E9ADA2F236DE /* Pods-AirbridgeQA-AirbridgeQATests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirbridgeQA-AirbridgeQATests.release.xcconfig"; path = "Target Support Files/Pods-AirbridgeQA-AirbridgeQATests/Pods-AirbridgeQA-AirbridgeQATests.release.xcconfig"; sourceTree = "<group>"; };
57
+ 9FEEF71C2D52039A0024EBC7 /* APNsSetting.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = APNsSetting.h; path = AirbridgeQA/APNsSetting.h; sourceTree = SOURCE_ROOT; };
58
+ 9FEEF7292D5233BD0024EBC7 /* APNsSetting.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = APNsSetting.m; path = AirbridgeQA/APNsSetting.m; sourceTree = "<group>"; };
59
+ 9FEEF72D2D52FD4D0024EBC7 /* Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "Bridging-Header.h"; path = "AirbridgeQA/Bridging-Header.h"; sourceTree = "<group>"; };
55
60
  C32569C92C252200005224AD /* PermissionInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = PermissionInteractor.swift; path = AirbridgeQA/PermissionInteractor.swift; sourceTree = "<group>"; };
56
61
  C32569CC2C2523F9005224AD /* PermissionInteractor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = PermissionInteractor.m; path = AirbridgeQA/PermissionInteractor.m; sourceTree = "<group>"; };
57
62
  C3A504792C291A32003D3C3C /* IdentifiersInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = IdentifiersInteractor.swift; path = AirbridgeQA/IdentifiersInteractor.swift; sourceTree = "<group>"; };
@@ -103,6 +108,9 @@
103
108
  13B07FAE1A68108700A75B9A /* AirbridgeQA */ = {
104
109
  isa = PBXGroup;
105
110
  children = (
111
+ 9FEEF72D2D52FD4D0024EBC7 /* Bridging-Header.h */,
112
+ 9FEEF71C2D52039A0024EBC7 /* APNsSetting.h */,
113
+ 9FEEF7292D5233BD0024EBC7 /* APNsSetting.m */,
106
114
  C3A972502C16D5CE00148EF3 /* AirbridgeQA.entitlements */,
107
115
  13B07FAF1A68108700A75B9A /* AppDelegate.h */,
108
116
  13B07FB01A68108700A75B9A /* AppDelegate.mm */,
@@ -212,6 +220,7 @@
212
220
  E235C05ADACE081382539298 /* [CP] Copy Pods Resources */,
213
221
  E69B344EB307D0B30A1489D0 /* [CP-User] [RNFB] Core Configuration */,
214
222
  0F6BA7EF1972C8E1EFFDC1E2 /* [Airbridge] Copy airbridge.json */,
223
+ F512DEE40B6FEB6A7857769A /* [Airbridge] Create LibraryInfo.json */,
215
224
  );
216
225
  buildRules = (
217
226
  );
@@ -273,6 +282,7 @@
273
282
  81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
274
283
  C3A9724F2C16D52700148EF3 /* GoogleService-Info.plist in Resources */,
275
284
  13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
285
+ 9FEEF72A2D5233C20024EBC7 /* APNsSetting.m in Resources */,
276
286
  20D0876B7957883E58D87769 /* PrivacyInfo.xcprivacy in Resources */,
277
287
  );
278
288
  runOnlyForDeploymentPostprocessing = 0;
@@ -329,7 +339,7 @@
329
339
  );
330
340
  runOnlyForDeploymentPostprocessing = 0;
331
341
  shellPath = /bin/sh;
332
- shellScript = "if [ -r ${SRCROOT}/../airbridge.json ]; then\n cp ${SRCROOT}/../airbridge.json ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/airbridge.json\nfi";
342
+ shellScript = "if [ -r \"${SRCROOT}/../airbridge.json\" ]; then\n cp \"${SRCROOT}/../airbridge.json\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/airbridge.json\"\nfi";
333
343
  };
334
344
  A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = {
335
345
  isa = PBXShellScriptBuildPhase;
@@ -440,6 +450,24 @@
440
450
  shellPath = /bin/sh;
441
451
  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";
442
452
  };
453
+ F512DEE40B6FEB6A7857769A /* [Airbridge] Create LibraryInfo.json */ = {
454
+ isa = PBXShellScriptBuildPhase;
455
+ buildActionMask = 2147483647;
456
+ files = (
457
+ );
458
+ inputFileListPaths = (
459
+ );
460
+ inputPaths = (
461
+ );
462
+ name = "[Airbridge] Create LibraryInfo.json";
463
+ outputFileListPaths = (
464
+ );
465
+ outputPaths = (
466
+ );
467
+ runOnlyForDeploymentPostprocessing = 0;
468
+ shellPath = /bin/sh;
469
+ shellScript = "echo '{\"wrapperName\": \"airbridge-react-native-sdk\", \"wrapperVersion\": \"4.2.0\"}' > \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/LibraryInfo.json\"\n";
470
+ };
443
471
  F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = {
444
472
  isa = PBXShellScriptBuildPhase;
445
473
  buildActionMask = 2147483647;
@@ -472,6 +500,7 @@
472
500
  isa = PBXSourcesBuildPhase;
473
501
  buildActionMask = 2147483647;
474
502
  files = (
503
+ 9FEEF72B2D5236F90024EBC7 /* APNsSetting.m in Sources */,
475
504
  C3A5047A2C291A32003D3C3C /* IdentifiersInteractor.swift in Sources */,
476
505
  13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
477
506
  C3A5047C2C291BE5003D3C3C /* IdentifiersInteractor.m in Sources */,
@@ -579,6 +608,7 @@
579
608
  );
580
609
  PRODUCT_BUNDLE_IDENTIFIER = co.ab180.airbridge.qa.application;
581
610
  PRODUCT_NAME = AirbridgeQA;
611
+ SWIFT_OBJC_BRIDGING_HEADER = "AirbridgeQA/Bridging-Header.h";
582
612
  SWIFT_OPTIMIZATION_LEVEL = "-Onone";
583
613
  SWIFT_VERSION = 5.0;
584
614
  VERSIONING_SYSTEM = "apple-generic";
@@ -607,6 +637,7 @@
607
637
  );
608
638
  PRODUCT_BUNDLE_IDENTIFIER = co.ab180.airbridge.qa.application;
609
639
  PRODUCT_NAME = AirbridgeQA;
640
+ SWIFT_OBJC_BRIDGING_HEADER = "AirbridgeQA/Bridging-Header.h";
610
641
  SWIFT_VERSION = 5.0;
611
642
  VERSIONING_SYSTEM = "apple-generic";
612
643
  };
@@ -1,18 +1,18 @@
1
1
  PODS:
2
- - airbridge-ios-sdk (4.1.3)
3
- - airbridge-ios-sdk-qa-library (4.1.3)
4
- - airbridge-react-native-sdk (4.1.5):
5
- - airbridge-ios-sdk (= 4.1.3)
2
+ - airbridge-ios-sdk (4.2.2)
3
+ - airbridge-ios-sdk-qa-library (4.2.2)
4
+ - airbridge-react-native-sdk (4.2.0):
5
+ - airbridge-ios-sdk (= 4.2.2)
6
6
  - React
7
7
  - boost (1.84.0)
8
8
  - DoubleConversion (1.1.6)
9
- - FBAEMKit (17.4.0):
10
- - FBSDKCoreKit_Basics (= 17.4.0)
9
+ - FBAEMKit (18.0.0):
10
+ - FBSDKCoreKit_Basics (= 18.0.0)
11
11
  - FBLazyVector (0.75.1)
12
- - FBSDKCoreKit (17.4.0):
13
- - FBAEMKit (= 17.4.0)
14
- - FBSDKCoreKit_Basics (= 17.4.0)
15
- - FBSDKCoreKit_Basics (17.4.0)
12
+ - FBSDKCoreKit (18.0.0):
13
+ - FBAEMKit (= 18.0.0)
14
+ - FBSDKCoreKit_Basics (= 18.0.0)
15
+ - FBSDKCoreKit_Basics (18.0.0)
16
16
  - Firebase/CoreOnly (10.29.0):
17
17
  - FirebaseCore (= 10.29.0)
18
18
  - Firebase/Messaging (10.29.0):
@@ -1331,12 +1331,12 @@ PODS:
1331
1331
  - Yoga
1332
1332
  - react-native-native-log (0.1.3):
1333
1333
  - React
1334
- - react-native-safe-area-context (4.10.9):
1334
+ - react-native-safe-area-context (4.14.1):
1335
1335
  - React-Core
1336
- - react-native-simple-toast (3.3.1):
1336
+ - react-native-simple-toast (3.3.2):
1337
1337
  - React-Core
1338
1338
  - Toast (~> 4)
1339
- - react-native-webview (13.12.0):
1339
+ - react-native-webview (13.12.5):
1340
1340
  - DoubleConversion
1341
1341
  - glog
1342
1342
  - hermes-engine
@@ -1617,17 +1617,36 @@ PODS:
1617
1617
  - React-logger (= 0.75.1)
1618
1618
  - React-perflogger (= 0.75.1)
1619
1619
  - React-utils (= 0.75.1)
1620
- - RNCMaskedView (0.3.1):
1620
+ - RNCMaskedView (0.3.2):
1621
+ - DoubleConversion
1622
+ - glog
1623
+ - hermes-engine
1624
+ - RCT-Folly (= 2024.01.01.00)
1625
+ - RCTRequired
1626
+ - RCTTypeSafety
1621
1627
  - React-Core
1622
- - RNFBApp (20.4.0):
1628
+ - React-debug
1629
+ - React-Fabric
1630
+ - React-featureflags
1631
+ - React-graphics
1632
+ - React-ImageManager
1633
+ - React-NativeModulesApple
1634
+ - React-RCTFabric
1635
+ - React-rendererdebug
1636
+ - React-utils
1637
+ - ReactCodegen
1638
+ - ReactCommon/turbomodule/bridging
1639
+ - ReactCommon/turbomodule/core
1640
+ - Yoga
1641
+ - RNFBApp (20.5.0):
1623
1642
  - Firebase/CoreOnly (= 10.29.0)
1624
1643
  - React-Core
1625
- - RNFBMessaging (20.4.0):
1644
+ - RNFBMessaging (20.5.0):
1626
1645
  - Firebase/Messaging (= 10.29.0)
1627
1646
  - FirebaseCoreExtension
1628
1647
  - React-Core
1629
1648
  - RNFBApp
1630
- - RNGestureHandler (2.18.1):
1649
+ - RNGestureHandler (2.21.2):
1631
1650
  - DoubleConversion
1632
1651
  - glog
1633
1652
  - hermes-engine
@@ -1648,7 +1667,7 @@ PODS:
1648
1667
  - ReactCommon/turbomodule/bridging
1649
1668
  - ReactCommon/turbomodule/core
1650
1669
  - Yoga
1651
- - RNScreens (3.34.0):
1670
+ - RNScreens (3.35.0):
1652
1671
  - DoubleConversion
1653
1672
  - glog
1654
1673
  - hermes-engine
@@ -1923,15 +1942,15 @@ EXTERNAL SOURCES:
1923
1942
  :path: "../node_modules/react-native/ReactCommon/yoga"
1924
1943
 
1925
1944
  SPEC CHECKSUMS:
1926
- airbridge-ios-sdk: 1ada55013e9d4aceb621d1fb794d79839afee057
1927
- airbridge-ios-sdk-qa-library: 79b3285875970be44c4302b9f48bf5ed62acccad
1928
- airbridge-react-native-sdk: 1320523576e5ec60590c56939f5fb421d03e1100
1945
+ airbridge-ios-sdk: dc9373851397d23b5930966454af805929102c3d
1946
+ airbridge-ios-sdk-qa-library: 7d41cc83c37fb8e30487eccf0a209d493f6672c1
1947
+ airbridge-react-native-sdk: dd5d5ead46ff1d6eab9a3ee80912b2cab6dd78d8
1929
1948
  boost: 4cb898d0bf20404aab1850c656dcea009429d6c1
1930
1949
  DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5
1931
- FBAEMKit: 58cb5f302cdd715a56d4c1d0dfdd2e423ac1421a
1950
+ FBAEMKit: e34530df538b8eb8aeb53c35867715ba6c63ef0c
1932
1951
  FBLazyVector: a3071c12f1650bfa84f2815e9982426256a0aae1
1933
- FBSDKCoreKit: 94d7461d0cecf441b1ba7c41acfff41daa8ccd41
1934
- FBSDKCoreKit_Basics: 151b43db8b834d3f0e02f95d36a44ffd36265e45
1952
+ FBSDKCoreKit: d3f479a69127acebb1c6aad91c1a33907bcf6c2f
1953
+ FBSDKCoreKit_Basics: 017b6dc2a1862024815a8229e75661e627ac1e29
1935
1954
  Firebase: cec914dab6fd7b1bd8ab56ea07ce4e03dd251c2d
1936
1955
  FirebaseCore: 30e9c1cbe3d38f5f5e75f48bfcea87d7c358ec16
1937
1956
  FirebaseCoreExtension: 705ca5b14bf71d2564a0ddc677df1fc86ffa600f
@@ -1975,9 +1994,9 @@ SPEC CHECKSUMS:
1975
1994
  React-Mapbuffer: b758bec0d9994c10a2841dfd5ec70673665fd3e2
1976
1995
  React-microtasksnativemodule: f25dba9c8c3f8be0b3368d52b99abd6e381dee1d
1977
1996
  react-native-native-log: bd883a7b018c0cdd9d23bc806a074bc067cfb7a9
1978
- react-native-safe-area-context: ab8f4a3d8180913bd78ae75dd599c94cce3d5e9a
1979
- react-native-simple-toast: 1f1cc551d419bc0ab05dcb0136554006c274789d
1980
- react-native-webview: 8d898b88c0bc3f90f232882d0aef9ef29c1b9160
1997
+ react-native-safe-area-context: 141eca0fd4e4191288dfc8b96a7c7e1c2983447a
1998
+ react-native-simple-toast: 645b68c26e43786fc05e3d7401de2b057f139054
1999
+ react-native-webview: b034adbe6dc6cc783c3270b6e47298bc1dfdb632
1981
2000
  React-nativeconfig: 7af2ccce165f86b233a9f9d63295f6207e62640e
1982
2001
  React-NativeModulesApple: db1c1ee9dda26c9e58d824b4100fed83add82ae9
1983
2002
  React-perflogger: 7c4e97b47d8bc58c03fad1a6b97d96181b59aa41
@@ -2004,11 +2023,11 @@ SPEC CHECKSUMS:
2004
2023
  React-utils: 0ae17a2fe87b43a939826410d2fcbb28d44f1bfc
2005
2024
  ReactCodegen: e9156d86a166f3e10dc8fb6160764048df3528bc
2006
2025
  ReactCommon: 3ae48fa4cfa7052a270c2150ececfc94e541fb8a
2007
- RNCMaskedView: 090213d32d8b3bb83a4dcb7d12c18f0152591906
2008
- RNFBApp: 2f83756f4d8be2859af5e2cf54130c20e380119d
2009
- RNFBMessaging: 91592ea949854c66697757af648a2c07bcb583b9
2010
- RNGestureHandler: 939f21fabf5d45a725c0bf175eb819dd25cf2e70
2011
- RNScreens: 19719a9c326e925498ac3b2d35c4e50fe87afc06
2026
+ RNCMaskedView: e07a0b5e9e8d6962826def06e6ff2ecdb815433f
2027
+ RNFBApp: 5f87753a8d8b37d229adf85cd0ff37709ffdf008
2028
+ RNFBMessaging: 3fa1114c0868dd21f20dfe186adf42297ea316b1
2029
+ RNGestureHandler: aa9690789023c9be8f06aa90e10ce637ea788f4d
2030
+ RNScreens: c7ceced6a8384cb9be5e7a5e88e9e714401fd958
2012
2031
  SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
2013
2032
  Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
2014
2033
  Yoga: 06fc4b2c3664ae0e278964b8fbcb0ee9d21f0a5a