airbridge-react-native-sdk-restricted 4.3.0 → 4.4.1

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 (49) hide show
  1. package/airbridge_sdk.json +2 -2
  2. package/android/src/main/java/co/ab180/airbridge/reactnative/AirbridgeReactNative.kt +7 -0
  3. package/android/src/main/java/co/ab180/airbridge/reactnative/extension/AirbridgeOptionBuilderApply.kt +20 -0
  4. package/android/src/main/java/co/ab180/airbridge/reactnative/extension/IntentUtils.kt +22 -0
  5. package/android/src/main/java/co/ab180/airbridge/reactnative/module/PlacementInteractor.kt +7 -1
  6. package/android/src/main/java/co/ab180/airbridge/reactnative/module/SwitchInteractor.kt +15 -0
  7. package/build/document/assets/search.js +1 -1
  8. package/build/document/classes/Airbridge.html +12 -2
  9. package/build/document/classes/AirbridgeAttribute.html +1 -3
  10. package/build/source/Airbridge.d.ts +20 -0
  11. package/build/source/Airbridge.js +23 -0
  12. package/build/source/Airbridge.js.map +1 -1
  13. package/build/source/constant/AirbridgeAttribute.d.ts +0 -2
  14. package/build/source/constant/AirbridgeAttribute.js +0 -6
  15. package/build/source/constant/AirbridgeAttribute.js.map +1 -1
  16. package/build/source/module/Switch.d.ts +6 -0
  17. package/build/source/module/Switch.js +12 -0
  18. package/build/source/module/Switch.js.map +1 -1
  19. package/changelog.md +20 -0
  20. package/ios/AirbridgeReactNative/AirbridgeReactNative.swift +4 -2
  21. package/ios/AirbridgeReactNative/Extension/AirbridgeOptionBuilderApply.swift +17 -3
  22. package/ios/AirbridgeReactNative/Module/AirbridgeModuleExtern.m +7 -0
  23. package/ios/AirbridgeReactNative/Module/SwitchInteractor.swift +18 -0
  24. package/ios/copy-airbridge-json.rb +1 -1
  25. package/ios/create-library-info-json.rb +1 -1
  26. package/package.json +1 -1
  27. package/qa/airbridge.json +3 -1
  28. package/qa/airbridge_qa.json +2 -2
  29. package/qa/android/app/build.gradle +6 -4
  30. package/qa/android/app/src/main/AndroidManifest.xml +1 -1
  31. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/ConfigurationLoader.kt +7 -1
  32. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/ModuleInjector.kt +2 -1
  33. package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/module/TestUiInteractor.kt +41 -0
  34. package/qa/ios/AirbridgeQA/AirbridgeJSONSwizzler.swift +8 -0
  35. package/qa/ios/AirbridgeQA/TestUiInteractor.m +15 -0
  36. package/qa/ios/AirbridgeQA/TestUiInteractor.swift +103 -0
  37. package/qa/ios/AirbridgeQA.xcodeproj/project.pbxproj +9 -1
  38. package/qa/ios/InternalLibrary/airbridge-ios-sdk-qa-library.podspec +1 -1
  39. package/qa/ios/InternalLibrary/airbridge-ios-sdk-restricted.podspec +1 -1
  40. package/qa/ios/Podfile +1 -1
  41. package/qa/ios/Podfile.lock +14 -14
  42. package/qa/package-lock.json +8730 -2172
  43. package/qa/source/common/Colors.js +1 -0
  44. package/qa/source/component/CustomSwitch.js +29 -0
  45. package/qa/source/component/CustomView.js +31 -0
  46. package/qa/source/pages/Home.js +101 -24
  47. package/source/Airbridge.ts +26 -0
  48. package/source/constant/AirbridgeAttribute.ts +0 -8
  49. package/source/module/Switch.ts +19 -0
package/changelog.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## 4.4.1
2
+
3
+ **FIXED**
4
+ * Fixed `onDeeplinkReceived` callback not being called multiple times
5
+
6
+ ## 4.4.0
7
+
8
+ **ADDED**
9
+ * Added an interface for IAP event tracking.
10
+ * Added interface setCollectTCFDataEnabled to collect DMA consent data.
11
+
12
+ **CHANGED**
13
+ * Update `Airbridge Android SDK` to 4.4.1
14
+ * Update `Airbridge iOS SDK` to 4.4.2
15
+ * Update to enable appSetID collection in restricted version.
16
+ * Removed `ORIGINAL_CURRENCY`, `ORIGINAL_CONTRIBUTION_MARGIN` attribute key values.
17
+
18
+ **FIXED**
19
+ * Solve issue that SDK is not installed on some monorepo environment.
20
+
1
21
  ## 4.3.0
2
22
 
3
23
  **ADDED**
@@ -119,8 +119,10 @@ func getSDKVersionAttributes() -> [String: String] {
119
119
  let data = try? Data(contentsOf: URL(fileURLWithPath: path))
120
120
  else { return [:] }
121
121
 
122
- if let json = try? JSONSerialization.jsonObject(with: data) as? [String: Any] {
123
- return json.compactMapValues { $0 as? String }
122
+ if
123
+ let raw = try? JSONSerialization.jsonObject(with: data),
124
+ let json = raw as? [String: Any] {
125
+ return json.compactMapValues { $0 as? String }
124
126
  }
125
127
 
126
128
  Logger.warning("File LibraryInfo.json is not in json format")
@@ -10,7 +10,7 @@ import Airbridge
10
10
  extension AirbridgeOptionBuilder {
11
11
  func setAirbridgeJSON(_ airbridgeJSON: [AnyHashable: Any]?) -> AirbridgeOptionBuilder {
12
12
  guard let json = airbridgeJSON else { return self }
13
-
13
+
14
14
  if let sdkEnabled = json["sdkEnabled"] as? Bool {
15
15
  setSDKEnabled(sdkEnabled)
16
16
  }
@@ -34,7 +34,7 @@ extension AirbridgeOptionBuilder {
34
34
  setAutoStartTrackingEnabled(autoStartTrackingEnabled)
35
35
  }
36
36
  if
37
- let autoDetermineTrackingAuthorizationTimeoutInSecond
37
+ let autoDetermineTrackingAuthorizationTimeoutInSecond
38
38
  = json["autoDetermineTrackingAuthorizationTimeoutInSecond"] as? Double
39
39
  {
40
40
  setAutoDetermineTrackingAuthorizationTimeout(second: autoDetermineTrackingAuthorizationTimeoutInSecond)
@@ -80,7 +80,21 @@ extension AirbridgeOptionBuilder {
80
80
  if let eventTransmitIntervalInSecond = json["eventTransmitIntervalInSecond"] as? Double {
81
81
  setEventTransmitInterval(second: eventTransmitIntervalInSecond)
82
82
  }
83
-
83
+
84
+ // 4.4.0
85
+ if let inAppPurchaseEnvironment = json["inAppPurchaseEnvironment"] as? String {
86
+ switch inAppPurchaseEnvironment.lowercased() {
87
+ case "production":
88
+ setInAppPurchaseEnvironment(AirbridgeInAppPurchaseEnvironment.production)
89
+ case "sandbox":
90
+ setInAppPurchaseEnvironment(AirbridgeInAppPurchaseEnvironment.sandbox)
91
+ default: break
92
+ }
93
+ }
94
+ if let collectTCFDataEnabled = json["collectTCFDataEnabled"] as? Bool {
95
+ setCollectTCFDataEnabled(collectTCFDataEnabled)
96
+ }
97
+
84
98
  return self
85
99
  }
86
100
  }
@@ -123,6 +123,13 @@ RCT_EXTERN_METHOD(stopTracking)
123
123
  RCT_EXTERN_METHOD(isTrackingEnabled:(RCTPromiseResolveBlock)resolve
124
124
  reject:(RCTPromiseRejectBlock)reject)
125
125
 
126
+ RCT_EXTERN_METHOD(startInAppPurchaseTracking)
127
+
128
+ RCT_EXTERN_METHOD(stopInAppPurchaseTracking)
129
+
130
+ RCT_EXTERN_METHOD(isInAppPurchaseTrackingEnabled:(RCTPromiseResolveBlock)resolve
131
+ reject:(RCTPromiseRejectBlock)reject)
132
+
126
133
  @end
127
134
 
128
135
  // WebInterface
@@ -45,4 +45,22 @@ class SwitchInteractor: NSObject {
45
45
  ) {
46
46
  resolve(Airbridge.isTrackingEnabled)
47
47
  }
48
+
49
+ @objc(startInAppPurchaseTracking)
50
+ func startInAppPurchaseTracking() {
51
+ Airbridge.startInAppPurchaseTracking()
52
+ }
53
+
54
+ @objc(stopInAppPurchaseTracking)
55
+ func stopInAppPurchaseTracking() {
56
+ Airbridge.stopInAppPurchaseTracking()
57
+ }
58
+
59
+ @objc(isInAppPurchaseTrackingEnabled:reject:)
60
+ func isInAppPurchaseTrackingEnabled(
61
+ _ resolve: RCTPromiseResolveBlock,
62
+ _ reject: RCTPromiseRejectBlock
63
+ ) {
64
+ resolve(Airbridge.isInAppPurchaseTrackingEnabled)
65
+ }
48
66
  }
@@ -3,7 +3,7 @@ require 'pathname'
3
3
 
4
4
  current_directory=File.dirname(__FILE__)
5
5
 
6
- ios_project_directory=`cd #{current_directory}; cd ../../../ios; pwd`.gsub("\n", "")
6
+ ios_project_directory=`cd #{current_directory}; cd #{Pod::Config.instance.installation_root}; pwd`.gsub("\n", "")
7
7
  ios_project_file=File.join(
8
8
  ios_project_directory,
9
9
  `cd #{ios_project_directory}; find . -maxdepth 1 -name "*.xcodeproj" | tail -1`,
@@ -3,7 +3,7 @@ require 'pathname'
3
3
 
4
4
  current_directory=File.dirname(__FILE__)
5
5
 
6
- ios_project_directory=`cd #{current_directory}; cd ../../../ios; pwd`.gsub("\n", "")
6
+ ios_project_directory=`cd #{current_directory}; cd #{Pod::Config.instance.installation_root}; pwd`.gsub("\n", "")
7
7
  ios_project_file=File.join(
8
8
  ios_project_directory,
9
9
  `cd #{ios_project_directory}; find . -maxdepth 1 -name "*.xcodeproj" | tail -1`,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "airbridge-react-native-sdk-restricted",
3
- "version": "4.3.0",
3
+ "version": "4.4.1",
4
4
  "description": "Airbridge SDK for React Native",
5
5
  "main": "build/source/module.js",
6
6
  "types": "build/source/module.d.ts",
package/qa/airbridge.json CHANGED
@@ -4,5 +4,7 @@
4
4
  "sdkSignatureSecretID": "eacf944d-a6da-47e2-a38c-ac3f76bb37bb",
5
5
  "sdkSignatureSecret": "d8ddd2b61947195fa73ef5d8d3cc4092acb280c281f1fc96479c35ef483f2cfe",
6
6
  "logLevel": "debug",
7
- "isHandleAirbridgeDeeplinkOnly": true
7
+ "isHandleAirbridgeDeeplinkOnly": true,
8
+ "inAppPurchaseEnvironment": "sandbox",
9
+ "collectTCFDataEnabled": true
8
10
  }
@@ -1,6 +1,6 @@
1
1
  {
2
- "intenral_library": {
2
+ "internal_library": {
3
3
  "ios_version": null,
4
- "android_version": "4.3.0-build-+"
4
+ "android_version": "4.4.1-build-+"
5
5
  }
6
6
  }
@@ -57,7 +57,7 @@ react {
57
57
  autolinkLibrariesWithApp()
58
58
  }
59
59
 
60
- def enableProguardInReleaseBuilds = false
60
+ def enableProguardInReleaseBuilds = true
61
61
 
62
62
  def jscFlavor = 'org.webkit:android-jsc:+'
63
63
 
@@ -117,13 +117,15 @@ dependencies {
117
117
  implementation jscFlavor
118
118
  }
119
119
 
120
- if (airbridgeQA['intenral_library']['android_version'] == null) {
120
+ if (airbridgeQA['internal_library']['android_version'] == null) {
121
121
  implementation "io.airbridge:sdk-android-restricted:${airbridgeSDK['android_version']}"
122
122
  implementation "io.airbridge:configuration-spec:${airbridgeSDK['android_version']}"
123
+ implementation "io.airbridge:testUi:${airbridgeSDK['android_version']}"
123
124
  }
124
125
  else {
125
- implementation "io.airbridge:sdk-android-restricted:${airbridgeQA['intenral_library']['android_version']}"
126
- implementation "io.airbridge:configuration-spec:${airbridgeQA['intenral_library']['android_version']}"
126
+ implementation "io.airbridge:sdk-android-restricted:${airbridgeQA['internal_library']['android_version']}"
127
+ implementation "io.airbridge:configuration-spec:${airbridgeQA['internal_library']['android_version']}"
128
+ implementation "io.airbridge:testUi:${airbridgeQA['internal_library']['android_version']}"
127
129
  }
128
130
  }
129
131
 
@@ -23,7 +23,7 @@
23
23
  android:roundIcon="@mipmap/ic_launcher"
24
24
  android:theme="@style/AppTheme"
25
25
  android:supportsRtl="true"
26
- tools:replace="android:allowBackup">
26
+ tools:replace="android:allowBackup, android:theme">
27
27
  <activity
28
28
  android:name=".MainActivity"
29
29
  android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
@@ -38,8 +38,14 @@ class ConfigurationLoader {
38
38
  }
39
39
  }
40
40
 
41
+ // android - 4.4.0 기준
42
+ // Loader.convertAirbridgeJsonFormat 에 아래 항목이 누락됨
43
+ // collectTCFDataEnabled
41
44
  private fun loadOption(context: Context): Map<String, Any> =
42
45
  Loader.loadOption(context)
43
- .let { Loader.convertAirbridgeJsonFormat(it) }
46
+ .let {
47
+ Loader.convertAirbridgeJsonFormat(it) +
48
+ ("collectTCFDataEnabled" to it.collectTCFDataEnabled)
49
+ }
44
50
  .also { Log.d(TAG, "loadOption : $it") }
45
51
  }
@@ -11,7 +11,8 @@ class ModuleInjector : ReactPackage {
11
11
  PermissionInteractor(reactApplicationContext),
12
12
  IdentifiersInteractor(reactApplicationContext),
13
13
  DeviceInfoInteractor(reactApplicationContext),
14
- InstallReferrerInteractor(reactApplicationContext)
14
+ InstallReferrerInteractor(reactApplicationContext),
15
+ TestUiInteractor(reactApplicationContext)
15
16
  )
16
17
  }
17
18
 
@@ -0,0 +1,41 @@
1
+ package co.ab180.airbridge.qa.application.module
2
+
3
+ import android.content.Intent
4
+ import androidx.appcompat.app.AppCompatActivity
5
+ import co.ab180.airbridge.testui.ConsentDataActivity
6
+ import co.ab180.airbridge.testui.PurchaseActivity
7
+ import co.ab180.airbridge.testui.TestUi
8
+ import com.facebook.react.bridge.ReactApplicationContext
9
+ import com.facebook.react.bridge.ReactContextBaseJavaModule
10
+ import com.facebook.react.bridge.ReactMethod
11
+
12
+ class TestUiInteractor(
13
+ reactContext: ReactApplicationContext?
14
+ ) : ReactContextBaseJavaModule(reactContext) {
15
+
16
+ override fun getName(): String = "TestUiInteractor"
17
+
18
+ @ReactMethod
19
+ fun purchase() {
20
+ setHomeButtonAction()
21
+ open(PurchaseActivity::class.java)
22
+ }
23
+
24
+ @ReactMethod
25
+ fun consentData() {
26
+ setHomeButtonAction()
27
+ open(ConsentDataActivity::class.java)
28
+ }
29
+
30
+ private fun setHomeButtonAction() {
31
+ TestUi.setHomeButtonAction {
32
+ (it as? AppCompatActivity)?.finish()
33
+ }
34
+ }
35
+
36
+ private fun open(clazz: Class<*>) {
37
+ currentActivity?.run {
38
+ startActivity(Intent(this, clazz))
39
+ }
40
+ }
41
+ }
@@ -47,6 +47,12 @@ public class AirbridgeJSONSwizzler: NSObject {
47
47
  }()
48
48
 
49
49
  var newDic = configuration.toAirbridgeJSON()
50
+
51
+ // ios - 4.4.2 기준
52
+ // configuration.toAirbridgeJSON() 에 아래 항목 누락으로 따로 추가 함.
53
+ // trackingLinkCustomDomains
54
+ // collectTCFDataEnabled
55
+ // inAppPurchaseEnvironment
50
56
  newDic["trackingLinkCustomDomains"] = [
51
57
  "qaabr.dev.abr.ge",
52
58
  "qaabr.dev1.abr.ge",
@@ -60,6 +66,8 @@ public class AirbridgeJSONSwizzler: NSObject {
60
66
  "qa.dev2.ab180.co",
61
67
  "xn--qa--bw8n.xn--ob0bx63e.com"
62
68
  ]
69
+ newDic["collectTCFDataEnabled"] = configuration.isCollectTCFDataEnabled
70
+ newDic["inAppPurchaseEnvironment"] = configuration.inAppPurchaseEnvironment
63
71
 
64
72
  configuration.applyToStorage()
65
73
  NSLog("Swizzling AirbridgeJSON loadOption: \(newDic)")
@@ -0,0 +1,15 @@
1
+ //
2
+ // TestUiInteractor.m
3
+ // AirbridgeQA
4
+ //
5
+ // Created by ab180 on 3/31/25.
6
+ //
7
+ #import <React/RCTBridgeModule.h>
8
+
9
+ @interface RCT_EXTERN_MODULE(TestUiInteractor, NSObject)
10
+
11
+ RCT_EXTERN_METHOD(purchase)
12
+
13
+ RCT_EXTERN_METHOD(consentData)
14
+
15
+ @end
@@ -0,0 +1,103 @@
1
+ //
2
+ // TestUiInteractor.swift
3
+ // AirbridgeQA
4
+ //
5
+ // Created by ab180 on 3/31/25.
6
+ //
7
+ import UIKit
8
+ import React
9
+ import Foundation
10
+ import AirbridgeQALibrary
11
+
12
+ @objc(TestUiInteractor)
13
+ class TestUiInteractor: NSObject {
14
+
15
+ @objc
16
+ static func requiresMainQueueSetup() -> Bool {
17
+ return true
18
+ }
19
+
20
+ @objc(purchase)
21
+ func purchase() {
22
+ let vc = InAppPurchaseViewController()
23
+ WindowPresenter.show(viewController: vc)
24
+ }
25
+
26
+ @objc(consentData)
27
+ func consentData() {
28
+ let uiStoryboard = UIStoryboard(
29
+ name: "Application",
30
+ bundle: Bundle(identifier: "co.ab180.airbridge.qa.library")
31
+ )
32
+
33
+ let vc = uiStoryboard.instantiateViewController(identifier: "DMAController")
34
+ WindowPresenter.show(viewController: vc)
35
+ }
36
+ }
37
+
38
+ enum WindowPresenter {
39
+ static var window: UIWindow = UIWindow()
40
+ static var context: Context? = nil
41
+
42
+ static func show(viewController: UIViewController) {
43
+ DispatchQueue.main.async {
44
+ window.frame = UIScreen.main.bounds
45
+ window.rootViewController = UIViewController()
46
+ window.windowLevel = .alert + 1
47
+ window.backgroundColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.0)
48
+
49
+ window.makeKeyAndVisible()
50
+
51
+ let navigationController = UINavigationController()
52
+ let homeAction = HomeAction {
53
+ navigationController.dismiss(animated: true) {
54
+ window.isHidden = true
55
+ context = nil
56
+ }
57
+ }
58
+
59
+ context = Context(
60
+ homeAction: homeAction,
61
+ navigationController: navigationController,
62
+ viewController: viewController
63
+ )
64
+
65
+ navigationController.pushViewController(viewController, animated: true)
66
+
67
+ navigationController.modalPresentationStyle = .fullScreen
68
+ window.rootViewController?.present(navigationController, animated: true) {
69
+ viewController.navigationItem.rightBarButtonItems = [
70
+ {
71
+ let button = UIBarButtonItem(
72
+ title: "Home",
73
+ style: .plain,
74
+ target: homeAction,
75
+ action: #selector(HomeAction.execute)
76
+ )
77
+ button.accessibilityIdentifier = "navigateHome"
78
+ return button
79
+ }(),
80
+ ]
81
+ }
82
+ }
83
+ }
84
+
85
+ struct Context {
86
+ let homeAction: HomeAction
87
+ let navigationController: UINavigationController
88
+ let viewController: UIViewController
89
+ }
90
+
91
+ class HomeAction {
92
+ let block: () -> Void
93
+
94
+ init(block: @escaping () -> Void) {
95
+ self.block = block
96
+ }
97
+
98
+ @objc
99
+ func execute() {
100
+ block()
101
+ }
102
+ }
103
+ }
@@ -14,6 +14,8 @@
14
14
  13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
15
15
  20D0876B7957883E58D87769 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 509084115650365DDB501091 /* PrivacyInfo.xcprivacy */; };
16
16
  6364E1D52D76C486009281C3 /* AirbridgeJSONSwizzler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6364E1D42D76C486009281C3 /* AirbridgeJSONSwizzler.swift */; };
17
+ 63F1373D2D9A98D900D2962F /* TestUiInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63F1373C2D9A98D900D2962F /* TestUiInteractor.swift */; };
18
+ 63F1373F2D9A990100D2962F /* TestUiInteractor.m in Sources */ = {isa = PBXBuildFile; fileRef = 63F1373E2D9A990100D2962F /* TestUiInteractor.m */; };
17
19
  7699B88040F8A987B510C191 /* libPods-AirbridgeQA-AirbridgeQATests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-AirbridgeQA-AirbridgeQATests.a */; };
18
20
  81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
19
21
  9FEEF72A2D5233C20024EBC7 /* APNsSetting.m in Resources */ = {isa = PBXBuildFile; fileRef = 9FEEF7292D5233BD0024EBC7 /* APNsSetting.m */; };
@@ -54,6 +56,8 @@
54
56
  5B7EB9410499542E8C5724F5 /* Pods-AirbridgeQA-AirbridgeQATests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AirbridgeQA-AirbridgeQATests.debug.xcconfig"; path = "Target Support Files/Pods-AirbridgeQA-AirbridgeQATests/Pods-AirbridgeQA-AirbridgeQATests.debug.xcconfig"; sourceTree = "<group>"; };
55
57
  5DCACB8F33CDC322A6C60F78 /* libPods-AirbridgeQA.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AirbridgeQA.a"; sourceTree = BUILT_PRODUCTS_DIR; };
56
58
  6364E1D42D76C486009281C3 /* AirbridgeJSONSwizzler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AirbridgeJSONSwizzler.swift; path = AirbridgeQA/AirbridgeJSONSwizzler.swift; sourceTree = "<group>"; };
59
+ 63F1373C2D9A98D900D2962F /* TestUiInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TestUiInteractor.swift; path = AirbridgeQA/TestUiInteractor.swift; sourceTree = "<group>"; };
60
+ 63F1373E2D9A990100D2962F /* TestUiInteractor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = TestUiInteractor.m; path = AirbridgeQA/TestUiInteractor.m; sourceTree = "<group>"; };
57
61
  81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = AirbridgeQA/LaunchScreen.storyboard; sourceTree = "<group>"; };
58
62
  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>"; };
59
63
  9FEEF71C2D52039A0024EBC7 /* APNsSetting.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = APNsSetting.h; path = AirbridgeQA/APNsSetting.h; sourceTree = SOURCE_ROOT; };
@@ -129,6 +133,8 @@
129
133
  C3A5047D2C291CA9003D3C3C /* DeviceInfoInteractor.swift */,
130
134
  C3A5047F2C292006003D3C3C /* DeviceInfoInteractor.m */,
131
135
  6364E1D42D76C486009281C3 /* AirbridgeJSONSwizzler.swift */,
136
+ 63F1373C2D9A98D900D2962F /* TestUiInteractor.swift */,
137
+ 63F1373E2D9A990100D2962F /* TestUiInteractor.m */,
132
138
  );
133
139
  name = AirbridgeQA;
134
140
  sourceTree = "<group>";
@@ -469,7 +475,7 @@
469
475
  );
470
476
  runOnlyForDeploymentPostprocessing = 0;
471
477
  shellPath = /bin/sh;
472
- shellScript = "echo '{\"wrapperName\": \"airbridge-react-native-sdk\", \"wrapperVersion\": \"4.3.0\"}' > \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/LibraryInfo.json\"\n";
478
+ shellScript = "echo '{\"wrapperName\": \"airbridge-react-native-sdk\", \"wrapperVersion\": \"4.4.1\"}' > \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/LibraryInfo.json\"\n";
473
479
  };
474
480
  F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = {
475
481
  isa = PBXShellScriptBuildPhase;
@@ -505,6 +511,7 @@
505
511
  files = (
506
512
  9FEEF72B2D5236F90024EBC7 /* APNsSetting.m in Sources */,
507
513
  6364E1D52D76C486009281C3 /* AirbridgeJSONSwizzler.swift in Sources */,
514
+ 63F1373F2D9A990100D2962F /* TestUiInteractor.m in Sources */,
508
515
  C3A5047A2C291A32003D3C3C /* IdentifiersInteractor.swift in Sources */,
509
516
  13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
510
517
  C3A5047C2C291BE5003D3C3C /* IdentifiersInteractor.m in Sources */,
@@ -512,6 +519,7 @@
512
519
  C32569CD2C2523F9005224AD /* PermissionInteractor.m in Sources */,
513
520
  13B07FC11A68108700A75B9A /* main.m in Sources */,
514
521
  C3A504802C292006003D3C3C /* DeviceInfoInteractor.m in Sources */,
522
+ 63F1373D2D9A98D900D2962F /* TestUiInteractor.swift in Sources */,
515
523
  C32569CA2C252200005224AD /* PermissionInteractor.swift in Sources */,
516
524
  );
517
525
  runOnlyForDeploymentPostprocessing = 0;
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
17
17
  s.swift_version = '5.0'
18
18
 
19
19
  s.source = {
20
- :http => "https://sdk-internal.airbridge.io/build/airbridge-ios-sdk/#{airbridge_qa['intenral_library']['ios_version']}/AirbridgeQALibrary.zip"
20
+ :http => "https://sdk-internal.airbridge.io/build/airbridge-ios-sdk/#{airbridge_qa['internal_library']['ios_version']}/AirbridgeQALibrary.zip"
21
21
  }
22
22
  s.preserve_paths = 'AirbridgeQALibrary'
23
23
  s.source_files = 'AirbridgeQALibrary/.Source/AirbridgeQALibrary.swift'
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
17
17
  s.swift_version = '5.0'
18
18
 
19
19
  s.source = {
20
- :http => "https://sdk-internal.airbridge.io/build/airbridge-ios-sdk/#{airbridge_qa['intenral_library']['ios_version']}/AirbridgeRestricted.zip"
20
+ :http => "https://sdk-internal.airbridge.io/build/airbridge-ios-sdk/#{airbridge_qa['internal_library']['ios_version']}/AirbridgeRestricted.zip"
21
21
  }
22
22
  s.preserve_paths = 'Airbridge'
23
23
  s.source_files = 'Airbridge/.Source/Airbridge.swift'
package/qa/ios/Podfile CHANGED
@@ -27,7 +27,7 @@ target 'AirbridgeQA' do
27
27
  pod 'FirebaseCore', :modular_headers => true
28
28
  pod 'FBSDKCoreKit'
29
29
  pod 'GoogleUtilities', :modular_headers => true
30
- if airbridge_qa['intenral_library']['ios_version'].nil?
30
+ if airbridge_qa['internal_library']['ios_version'].nil?
31
31
  pod 'airbridge-ios-sdk-qa-library', :podspec => 'Library/airbridge-ios-sdk-qa-library.podspec'
32
32
  else
33
33
  pod 'airbridge-ios-sdk-restricted', :podspec => 'InternalLibrary/airbridge-ios-restricted.podspec'
@@ -1,8 +1,8 @@
1
1
  PODS:
2
- - airbridge-ios-sdk (4.3.0)
3
- - airbridge-ios-sdk-qa-library (4.3.0)
4
- - airbridge-react-native-sdk (4.3.0):
5
- - airbridge-ios-sdk (= 4.3.0)
2
+ - airbridge-ios-sdk (4.4.2)
3
+ - airbridge-ios-sdk-qa-library (4.4.2)
4
+ - airbridge-react-native-sdk (4.4.1):
5
+ - airbridge-ios-sdk (= 4.4.2)
6
6
  - React
7
7
  - boost (1.84.0)
8
8
  - DoubleConversion (1.1.6)
@@ -1336,7 +1336,7 @@ PODS:
1336
1336
  - react-native-simple-toast (3.3.2):
1337
1337
  - React-Core
1338
1338
  - Toast (~> 4)
1339
- - react-native-webview (13.13.2):
1339
+ - react-native-webview (13.13.5):
1340
1340
  - DoubleConversion
1341
1341
  - glog
1342
1342
  - hermes-engine
@@ -1646,7 +1646,7 @@ PODS:
1646
1646
  - FirebaseCoreExtension
1647
1647
  - React-Core
1648
1648
  - RNFBApp
1649
- - RNGestureHandler (2.24.0):
1649
+ - RNGestureHandler (2.25.0):
1650
1650
  - DoubleConversion
1651
1651
  - glog
1652
1652
  - hermes-engine
@@ -1667,7 +1667,7 @@ PODS:
1667
1667
  - ReactCommon/turbomodule/bridging
1668
1668
  - ReactCommon/turbomodule/core
1669
1669
  - Yoga
1670
- - RNScreens (3.36.0):
1670
+ - RNScreens (3.37.0):
1671
1671
  - DoubleConversion
1672
1672
  - glog
1673
1673
  - hermes-engine
@@ -1942,9 +1942,9 @@ EXTERNAL SOURCES:
1942
1942
  :path: "../node_modules/react-native/ReactCommon/yoga"
1943
1943
 
1944
1944
  SPEC CHECKSUMS:
1945
- airbridge-ios-sdk: e5e2e1b97860043fac6726f3e7cbf7784ae12ac9
1946
- airbridge-ios-sdk-qa-library: 079464947679da1c09b1523b68e8af59aad8efc6
1947
- airbridge-react-native-sdk: 81f6d4100af26cec2b51ca9a75e750cd6958fdf6
1945
+ airbridge-ios-sdk: 21c97103a0343c46f3c2c755099f4ea111a2845b
1946
+ airbridge-ios-sdk-qa-library: 313aaa31c16c32943e2a0e255b88d6a33337210d
1947
+ airbridge-react-native-sdk: 7da16ce1295d6de0cbc9902a9a7f18ae0c2f034e
1948
1948
  boost: 4cb898d0bf20404aab1850c656dcea009429d6c1
1949
1949
  DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5
1950
1950
  FBAEMKit: e34530df538b8eb8aeb53c35867715ba6c63ef0c
@@ -1996,7 +1996,7 @@ SPEC CHECKSUMS:
1996
1996
  react-native-native-log: b6d4756019312793917f89e988b204eb939ed24c
1997
1997
  react-native-safe-area-context: 758e894ca5a9bd1868d2a9cfbca7326a2b6bf9dc
1998
1998
  react-native-simple-toast: 4c9cc976cb92b6e5fb555e7c57fce38b90a56d07
1999
- react-native-webview: 042b9dfd509d23e7ebc07da06c38a8bcc4679d46
1999
+ react-native-webview: 5ee4c0adc823251a7034a66fb193bdea1512cbc7
2000
2000
  React-nativeconfig: 7af2ccce165f86b233a9f9d63295f6207e62640e
2001
2001
  React-NativeModulesApple: 6861baf05010ce6aa9fb407ed0a54f5b29552f73
2002
2002
  React-perflogger: 7c4e97b47d8bc58c03fad1a6b97d96181b59aa41
@@ -2026,12 +2026,12 @@ SPEC CHECKSUMS:
2026
2026
  RNCMaskedView: e2e87cbd6366581943892b44176e7976ff988dfd
2027
2027
  RNFBApp: 0e66b9f844efdf2ac3fa2b30e64c9db41a263b3d
2028
2028
  RNFBMessaging: 70b12c9f22c7c9d5011ac9b12ac2bafbfb081267
2029
- RNGestureHandler: fc491c834d09b0538618a3f328ab75fe8f90f5b4
2030
- RNScreens: 5dc985f7d0745a9a0e1241996d11fade3a8bc4b5
2029
+ RNGestureHandler: 667fcafe32933456d8851e0a96932d2d2b34411a
2030
+ RNScreens: 631b8768411a16e356f7934058d2139d0cc75157
2031
2031
  SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
2032
2032
  Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
2033
2033
  Yoga: 06fc4b2c3664ae0e278964b8fbcb0ee9d21f0a5a
2034
2034
 
2035
- PODFILE CHECKSUM: 247fa8db03e9eac8ee3efea1584d696a222f405f
2035
+ PODFILE CHECKSUM: dc328b8d9c91069e2e6937344b4a4de8fa5b5f50
2036
2036
 
2037
2037
  COCOAPODS: 1.16.2