airbridge-react-native-sdk-restricted 4.5.1 → 4.7.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.
- package/.github/workflows/build.yml +6 -7
- package/.github/workflows/release.yml +1 -1
- package/airbridge_sdk.json +2 -2
- package/android/src/main/java/co/ab180/airbridge/reactnative/extension/AirbridgeOptionBuilderApply.kt +15 -0
- package/changelog.md +16 -0
- package/ios/AirbridgeReactNative/Extension/AirbridgeOptionBuilderApply.swift +17 -1
- package/package.json +1 -1
- package/qa/airbridge_qa.json +1 -1
- package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/ConfigurationLoader.kt +12 -4
- package/qa/ios/AirbridgeQA/AirbridgeJSONSwizzler.swift +7 -0
- package/qa/ios/AirbridgeQA.xcodeproj/project.pbxproj +1 -1
- package/qa/ios/InternalLibrary/airbridge-ios-sdk-restricted.podspec +3 -3
- package/qa/ios/Podfile +1 -1
- package/qa/ios/Podfile.lock +7 -7
- package/qa/package-lock.json +2 -2
- package/qa/package.json +1 -1
- package/qa/run-test-env.sh +54 -0
- package/qa/test/airbridge.development.json +6 -0
- package/qa/test/airbridge.test-dev200.json +4 -0
- package/qa/test/airbridge.test-dev@notsupport.json +4 -0
- package/qa/test/airbridge.test_dev201.json +4 -0
- package/script/ChangeRestricted.sh +3 -1
- package/qa/airbridge.development.json +0 -4
|
@@ -41,13 +41,12 @@ env:
|
|
|
41
41
|
}}
|
|
42
42
|
BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }}
|
|
43
43
|
TYPE: ${{
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|| 'Feature'
|
|
44
|
+
(
|
|
45
|
+
startsWith(github.event.pull_request.head.ref || github.ref_name, 'release/')
|
|
46
|
+
|| startsWith(github.event.pull_request.head.ref || github.ref_name, 'hotfix/')
|
|
47
|
+
)
|
|
48
|
+
&& 'Release'
|
|
49
|
+
|| 'Feature'
|
|
51
50
|
}}
|
|
52
51
|
TAG: ${{
|
|
53
52
|
format(
|
package/airbridge_sdk.json
CHANGED
|
@@ -3,6 +3,7 @@ package co.ab180.airbridge.reactnative.extension
|
|
|
3
3
|
import co.ab180.airbridge.AirbridgeInAppPurchaseEnvironment
|
|
4
4
|
import co.ab180.airbridge.AirbridgeLogLevel
|
|
5
5
|
import co.ab180.airbridge.AirbridgeOptionBuilder
|
|
6
|
+
import co.ab180.airbridge.common.AirbridgeTrackingBlocklist
|
|
6
7
|
|
|
7
8
|
internal fun AirbridgeOptionBuilder.setAirbridgeJSON(
|
|
8
9
|
airbridgeJSON: Map<String, Any>?
|
|
@@ -94,6 +95,20 @@ internal fun AirbridgeOptionBuilder.setAirbridgeJSON(
|
|
|
94
95
|
setCollectTCFDataEnabled(it)
|
|
95
96
|
}
|
|
96
97
|
|
|
98
|
+
//4.7.0
|
|
99
|
+
(json["trackingBlocklist"] as? List<*>)?.also { array ->
|
|
100
|
+
val list = mutableListOf<AirbridgeTrackingBlocklist>()
|
|
101
|
+
array.mapNotNull { it as? String }.forEach { block ->
|
|
102
|
+
when(block.lowercase()) {
|
|
103
|
+
"gaid" -> list.add(AirbridgeTrackingBlocklist.GAID)
|
|
104
|
+
"oaid" -> list.add(AirbridgeTrackingBlocklist.OAID)
|
|
105
|
+
"appsetid" -> list.add(AirbridgeTrackingBlocklist.APP_SET_ID)
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (list.isNotEmpty()) {
|
|
109
|
+
setTrackingBlocklist(list)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
97
112
|
|
|
98
113
|
return this
|
|
99
114
|
}
|
package/changelog.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## 4.7.0
|
|
2
|
+
|
|
3
|
+
**ADDED**
|
|
4
|
+
* Added `trackingBlocklist` option that blocks specific tracking.
|
|
5
|
+
|
|
6
|
+
**CHANGED**
|
|
7
|
+
* Update `Airbridge Android SDK` to 4.7.0
|
|
8
|
+
* Update `Airbridge iOS SDK` to 4.7.0
|
|
9
|
+
|
|
10
|
+
## 4.6.0
|
|
11
|
+
|
|
12
|
+
**CHANGED**
|
|
13
|
+
* In-app purchase measurement is now officially supported. The in-app purchase measurement feature will no longer be supported in earlier versions.
|
|
14
|
+
* Update `Airbridge Android SDK` to 4.6.0
|
|
15
|
+
* Update `Airbridge iOS SDK` to 4.6.0
|
|
16
|
+
|
|
1
17
|
## 4.5.1
|
|
2
18
|
|
|
3
19
|
**ADDED**
|
|
@@ -94,7 +94,23 @@ extension AirbridgeOptionBuilder {
|
|
|
94
94
|
if let collectTCFDataEnabled = json["collectTCFDataEnabled"] as? Bool {
|
|
95
95
|
setCollectTCFDataEnabled(collectTCFDataEnabled)
|
|
96
96
|
}
|
|
97
|
-
|
|
97
|
+
|
|
98
|
+
// 4.7.0
|
|
99
|
+
if let trackingBlocklist = json["trackingBlocklist"] as? Array<Any> {
|
|
100
|
+
let list = trackingBlocklist.compactMap({ $0 as? String })
|
|
101
|
+
.map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
|
|
102
|
+
.compactMap { block -> AirbridgeTrackingBlocklist? in
|
|
103
|
+
switch block.lowercased() {
|
|
104
|
+
case "idfa": return .idfa
|
|
105
|
+
case "idfv": return .idfv
|
|
106
|
+
default: return nil
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if !list.isEmpty {
|
|
110
|
+
setTrackingBlocklist(list)
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
98
114
|
return self
|
|
99
115
|
}
|
|
100
116
|
}
|
package/package.json
CHANGED
package/qa/airbridge_qa.json
CHANGED
package/qa/android/app/src/main/java/co/ab180/airbridge/qa/application/ConfigurationLoader.kt
CHANGED
|
@@ -6,6 +6,7 @@ import android.util.Log
|
|
|
6
6
|
import co.ab180.airbridge.reactnative.AirbridgeReactNative
|
|
7
7
|
import co.ab180.airbridge.reactnative.common.AirbridgeJSON
|
|
8
8
|
import co.ab180.configuration.Loader
|
|
9
|
+
import co.ab180.configuration.model.Configuration
|
|
9
10
|
import org.json.JSONObject
|
|
10
11
|
import java.lang.reflect.Field
|
|
11
12
|
|
|
@@ -38,14 +39,21 @@ class ConfigurationLoader {
|
|
|
38
39
|
}
|
|
39
40
|
}
|
|
40
41
|
|
|
41
|
-
// android - 4.4.0 기준
|
|
42
42
|
// Loader.convertAirbridgeJsonFormat 에 아래 항목이 누락됨
|
|
43
|
-
//
|
|
43
|
+
// trackingBlocklist
|
|
44
44
|
private fun loadOption(context: Context): Map<String, Any> =
|
|
45
45
|
Loader.loadOption(context)
|
|
46
46
|
.let {
|
|
47
|
-
Loader.convertAirbridgeJsonFormat(it)
|
|
48
|
-
|
|
47
|
+
val result = Loader.convertAirbridgeJsonFormat(it).toMutableMap()
|
|
48
|
+
|
|
49
|
+
it.trackingBlocklist
|
|
50
|
+
.takeUnless { it.isNullOrEmpty() }
|
|
51
|
+
?.split(",")
|
|
52
|
+
?.map { item -> item.trim() }
|
|
53
|
+
?.toList()
|
|
54
|
+
?.run { result.put("trackingBlocklist", this) }
|
|
55
|
+
|
|
56
|
+
result
|
|
49
57
|
}
|
|
50
58
|
.also { Log.d(TAG, "loadOption : $it") }
|
|
51
59
|
}
|
|
@@ -69,6 +69,13 @@ public class AirbridgeJSONSwizzler: NSObject {
|
|
|
69
69
|
newDic["collectTCFDataEnabled"] = configuration.isCollectTCFDataEnabled
|
|
70
70
|
newDic["inAppPurchaseEnvironment"] = configuration.inAppPurchaseEnvironment
|
|
71
71
|
|
|
72
|
+
// ios - 4.7.0 기준
|
|
73
|
+
// trackingBlocklist
|
|
74
|
+
// comma seperate 를 Array 로 변환 하여 전달
|
|
75
|
+
newDic["trackingBlocklist"] = configuration.trackingBlocklist
|
|
76
|
+
.split(separator: ",")
|
|
77
|
+
.map { $0.trimmingCharacters(in: .whitespacesAndNewlines) }
|
|
78
|
+
|
|
72
79
|
configuration.applyToStorage()
|
|
73
80
|
NSLog("Swizzling AirbridgeJSON loadOption: \(newDic)")
|
|
74
81
|
return newDic
|
|
@@ -475,7 +475,7 @@
|
|
|
475
475
|
);
|
|
476
476
|
runOnlyForDeploymentPostprocessing = 0;
|
|
477
477
|
shellPath = /bin/sh;
|
|
478
|
-
shellScript = "echo '{\"wrapperName\": \"airbridge-react-native-sdk\", \"wrapperVersion\": \"4.
|
|
478
|
+
shellScript = "echo '{\"wrapperName\": \"airbridge-react-native-sdk\", \"wrapperVersion\": \"4.7.0\"}' > \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/LibraryInfo.json\"\n";
|
|
479
479
|
};
|
|
480
480
|
F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = {
|
|
481
481
|
isa = PBXShellScriptBuildPhase;
|
|
@@ -19,9 +19,9 @@ Pod::Spec.new do |s|
|
|
|
19
19
|
s.source = {
|
|
20
20
|
:http => "https://sdk-internal.airbridge.io/build/airbridge-ios-sdk/#{airbridge_qa['internal_library']['ios_version']}/AirbridgeRestricted.zip"
|
|
21
21
|
}
|
|
22
|
-
s.preserve_paths = '
|
|
23
|
-
s.source_files = '
|
|
24
|
-
s.vendored_frameworks = '
|
|
22
|
+
s.preserve_paths = 'AirbridgeRestricted'
|
|
23
|
+
s.source_files = 'AirbridgeRestricted/.Source/Airbridge.swift'
|
|
24
|
+
s.vendored_frameworks = 'AirbridgeRestricted/Airbridge.xcframework'
|
|
25
25
|
|
|
26
26
|
s.summary = 'Airbridge SDK for iOS'
|
|
27
27
|
s.description = <<-DESC
|
package/qa/ios/Podfile
CHANGED
|
@@ -30,7 +30,7 @@ target 'AirbridgeQA' do
|
|
|
30
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
|
-
pod 'airbridge-ios-sdk-restricted', :podspec => 'InternalLibrary/airbridge-ios-restricted.podspec'
|
|
33
|
+
pod 'airbridge-ios-sdk-restricted', :podspec => 'InternalLibrary/airbridge-ios-sdk-restricted.podspec'
|
|
34
34
|
pod 'airbridge-ios-sdk-qa-library', :podspec => 'InternalLibrary/airbridge-ios-sdk-qa-library.podspec'
|
|
35
35
|
end
|
|
36
36
|
|
package/qa/ios/Podfile.lock
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
PODS:
|
|
2
|
-
- airbridge-ios-sdk (4.
|
|
3
|
-
- airbridge-ios-sdk-qa-library (4.
|
|
4
|
-
- airbridge-react-native-sdk (4.
|
|
5
|
-
- airbridge-ios-sdk (= 4.
|
|
2
|
+
- airbridge-ios-sdk (4.7.0)
|
|
3
|
+
- airbridge-ios-sdk-qa-library (4.7.0)
|
|
4
|
+
- airbridge-react-native-sdk (4.7.0):
|
|
5
|
+
- airbridge-ios-sdk (= 4.7.0)
|
|
6
6
|
- React
|
|
7
7
|
- boost (1.84.0)
|
|
8
8
|
- DoubleConversion (1.1.6)
|
|
@@ -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:
|
|
1946
|
-
airbridge-ios-sdk-qa-library:
|
|
1947
|
-
airbridge-react-native-sdk:
|
|
1945
|
+
airbridge-ios-sdk: f0f227bfde8baf7b85f956b4772e32a3a2821c5a
|
|
1946
|
+
airbridge-ios-sdk-qa-library: 95371d16e0ecd8578d5d4be901be262fc9ba062d
|
|
1947
|
+
airbridge-react-native-sdk: a45768deb6456e26eca373cb16932364228dc420
|
|
1948
1948
|
boost: 4cb898d0bf20404aab1850c656dcea009429d6c1
|
|
1949
1949
|
DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5
|
|
1950
1950
|
FBAEMKit: e34530df538b8eb8aeb53c35867715ba6c63ef0c
|
package/qa/package-lock.json
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"airbridge-react-native-sdk-restricted": "file:..",
|
|
15
15
|
"react": "18.3.1",
|
|
16
16
|
"react-native": "0.75.1",
|
|
17
|
-
"react-native-gesture-handler": "
|
|
17
|
+
"react-native-gesture-handler": "2.25.0",
|
|
18
18
|
"react-native-native-log": "^0.1.3",
|
|
19
19
|
"react-native-safe-area-context": "^4.10.8",
|
|
20
20
|
"react-native-screens": "^3.33.0",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
"..": {
|
|
46
|
-
"version": "4.
|
|
46
|
+
"version": "4.7.0",
|
|
47
47
|
"license": "MIT",
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/jest": "^29.5.12",
|
package/qa/package.json
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"airbridge-react-native-sdk-restricted": "file:..",
|
|
22
22
|
"react": "18.3.1",
|
|
23
23
|
"react-native": "0.75.1",
|
|
24
|
-
"react-native-gesture-handler": "
|
|
24
|
+
"react-native-gesture-handler": "2.25.0",
|
|
25
25
|
"react-native-native-log": "^0.1.3",
|
|
26
26
|
"react-native-safe-area-context": "^4.10.8",
|
|
27
27
|
"react-native-screens": "^3.33.0",
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
echo "Select Platform"
|
|
4
|
+
echo " 1. android"
|
|
5
|
+
echo " 2. ios"
|
|
6
|
+
|
|
7
|
+
read -p "Select Platform: " PLATFORM
|
|
8
|
+
echo ""
|
|
9
|
+
|
|
10
|
+
if [ $PLATFORM == "1" ]; then
|
|
11
|
+
export RUN_PLATFORM=run-android
|
|
12
|
+
elif [ $PLATFORM == "2" ]; then
|
|
13
|
+
export RUN_PLATFORM=run-ios
|
|
14
|
+
else
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
|
17
|
+
|
|
18
|
+
echo "Select AIRBRIDGE_ENVIRONMENT"
|
|
19
|
+
echo " 1. default"
|
|
20
|
+
echo " 2. development"
|
|
21
|
+
echo " 3. test-dev200"
|
|
22
|
+
echo " 4. test_dev201"
|
|
23
|
+
echo " 5. test-dev@notsupport"
|
|
24
|
+
echo " 6. test-not-exist"
|
|
25
|
+
|
|
26
|
+
read -p "Enter your environment (default: 1): " INPUT
|
|
27
|
+
echo ""
|
|
28
|
+
|
|
29
|
+
if [ $INPUT == "1" ]; then
|
|
30
|
+
echo "select default env"
|
|
31
|
+
elif [ $INPUT == "2" ]; then
|
|
32
|
+
export AIRBRIDGE_ENVIRONMENT=development
|
|
33
|
+
elif [ $INPUT == "3" ]; then
|
|
34
|
+
export AIRBRIDGE_ENVIRONMENT=test-dev200
|
|
35
|
+
elif [ $INPUT == "4" ]; then
|
|
36
|
+
export AIRBRIDGE_ENVIRONMENT=test_dev201
|
|
37
|
+
elif [ $INPUT == "5" ]; then
|
|
38
|
+
export AIRBRIDGE_ENVIRONMENT=test-dev@notsupport
|
|
39
|
+
elif [ $INPUT == "6" ]; then
|
|
40
|
+
export AIRBRIDGE_ENVIRONMENT=test-not-exist
|
|
41
|
+
else
|
|
42
|
+
echo "select wrong. set default env"
|
|
43
|
+
fi
|
|
44
|
+
|
|
45
|
+
cp "test/airbridge.$AIRBRIDGE_ENVIRONMENT.json" .
|
|
46
|
+
|
|
47
|
+
echo ""
|
|
48
|
+
echo "###############################################"
|
|
49
|
+
echo "## RUN_PLATFORM: $RUN_PLATFORM"
|
|
50
|
+
echo "## AIRBRIDGE_ENVIRONMENT: $AIRBRIDGE_ENVIRONMENT"
|
|
51
|
+
echo "###############################################"
|
|
52
|
+
echo ""
|
|
53
|
+
|
|
54
|
+
npx react-native $RUN_PLATFORM --port=9000
|
|
@@ -27,9 +27,11 @@ perl -i -pe "s/from 'airbridge-react-native-sdk'/from 'airbridge-react-native-sd
|
|
|
27
27
|
perl -i -pe "s/from 'airbridge-react-native-sdk'/from 'airbridge-react-native-sdk-restricted'/g" "$ROOT_DIRECTORY"/qa/source/**/*
|
|
28
28
|
perl -i -pe "s/= 'airbridge-ios-sdk'/= 'airbridge-ios-sdk-restricted'/g" "$ROOT_DIRECTORY/qa/ios/InternalLibrary/airbridge-ios-sdk.podspec"
|
|
29
29
|
perl -i -pe 's/Airbridge.zip"/AirbridgeRestricted.zip"/g' "$ROOT_DIRECTORY/qa/ios/InternalLibrary/airbridge-ios-sdk.podspec"
|
|
30
|
+
perl -i -pe "s/'Airbridge'/'AirbridgeRestricted'/g" "$ROOT_DIRECTORY/qa/ios/InternalLibrary/airbridge-ios-sdk.podspec"
|
|
31
|
+
perl -i -pe "s!'Airbridge/!'AirbridgeRestricted/!g" "$ROOT_DIRECTORY/qa/ios/InternalLibrary/airbridge-ios-sdk.podspec"
|
|
30
32
|
mv "$ROOT_DIRECTORY/qa/ios/InternalLibrary/airbridge-ios-sdk.podspec" "$ROOT_DIRECTORY/qa/ios/InternalLibrary/airbridge-ios-sdk-restricted.podspec"
|
|
31
33
|
perl -i -pe "s/pod 'airbridge-ios-sdk'/pod 'airbridge-ios-sdk-restricted'/g" "$ROOT_DIRECTORY/qa/ios/Podfile"
|
|
32
|
-
perl -i -pe "s!:podspec => 'InternalLibrary/airbridge-ios-sdk.podspec'!:podspec => 'InternalLibrary/airbridge-ios-restricted.podspec'!g" "$ROOT_DIRECTORY/qa/ios/Podfile"
|
|
34
|
+
perl -i -pe "s!:podspec => 'InternalLibrary/airbridge-ios-sdk.podspec'!:podspec => 'InternalLibrary/airbridge-ios-sdk-restricted.podspec'!g" "$ROOT_DIRECTORY/qa/ios/Podfile"
|
|
33
35
|
perl -i -pe 's/implementation "io.airbridge:sdk-android:/implementation "io.airbridge:sdk-android-restricted:/g' "$ROOT_DIRECTORY/qa/android/app/build.gradle"
|
|
34
36
|
|
|
35
37
|
echo 'Done'
|