@1selfworld/adchain-sdk-react-native 1.0.11 → 1.0.13
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/README.md +97 -97
- package/android/src/main/java/com/adchain/exposdk/AdchainSdkModule.kt +29 -0
- package/ios/AdchainSdk.swift +49 -0
- package/lib/module/index.js +4 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/plugin/src/withAdchainAndroid.js +48 -8
- package/src/index.tsx +5 -1
package/README.md
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
# @adchain
|
|
1
|
+
# @1selfworld/adchain-sdk-react-native
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
React Native 및 Expo를 위한 AdChain SDK입니다.
|
|
4
4
|
|
|
5
|
-
## 🚨
|
|
5
|
+
## 🚨 중요 공지
|
|
6
6
|
|
|
7
|
-
### Expo Go
|
|
8
|
-
|
|
7
|
+
### Expo Go 미지원
|
|
8
|
+
이 SDK는 네이티브 코드를 포함하고 있어 **Expo Go에서 작동하지 않습니다**.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
- ✅ Development Build: `npx expo run:android`
|
|
10
|
+
반드시 다음 방법을 사용하세요:
|
|
11
|
+
- ✅ Development Build: `npx expo run:android` 또는 `npx expo run:ios`
|
|
12
12
|
- ✅ EAS Build: `eas build --profile development`
|
|
13
13
|
|
|
14
|
-
### 🔐
|
|
14
|
+
### 🔐 보안 주의사항
|
|
15
15
|
app.json에 저장된 API 키는 앱 번들에 포함됩니다.
|
|
16
16
|
|
|
17
17
|
**권장사항:**
|
|
18
|
-
- ✅ **개발/테스트:** app.json 사용
|
|
18
|
+
- ✅ **개발/테스트:** app.json 사용 가능
|
|
19
19
|
- ⚠️ **프로덕션:** 환경별 키 분리 권장
|
|
20
20
|
- Android: `buildConfigField` 사용
|
|
21
21
|
- iOS: `xcconfig` 파일 사용
|
|
@@ -28,24 +28,24 @@ const token = await fetchTokenFromServer();
|
|
|
28
28
|
await AdchainSDK.initializeWithToken(token);
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
##
|
|
31
|
+
## 설치
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
npx expo install @adchain
|
|
34
|
+
npx expo install @1selfworld/adchain-sdk-react-native expo-constants
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
**참고:** `expo-constants`는 peerDependency입니다. 별도로 설치해야 합니다.
|
|
38
38
|
|
|
39
|
-
##
|
|
39
|
+
## 설정
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
`app.json`에 다음을 추가하세요:
|
|
42
42
|
|
|
43
43
|
```json
|
|
44
44
|
{
|
|
45
45
|
"expo": {
|
|
46
46
|
"plugins": [
|
|
47
47
|
[
|
|
48
|
-
"@adchain
|
|
48
|
+
"@1selfworld/adchain-sdk-react-native",
|
|
49
49
|
{
|
|
50
50
|
"appKey": "YOUR_APP_KEY",
|
|
51
51
|
"appSecret": "YOUR_APP_SECRET",
|
|
@@ -57,17 +57,17 @@ Add to your `app.json`:
|
|
|
57
57
|
}
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
##
|
|
60
|
+
## 사용법
|
|
61
61
|
|
|
62
62
|
```typescript
|
|
63
63
|
import { useEffect } from 'react';
|
|
64
|
-
import AdchainSDK from '@adchain
|
|
64
|
+
import AdchainSDK from '@1selfworld/adchain-sdk-react-native';
|
|
65
65
|
|
|
66
66
|
export default function App() {
|
|
67
67
|
useEffect(() => {
|
|
68
|
-
//
|
|
68
|
+
// app.json 설정을 사용한 자동 초기화
|
|
69
69
|
AdchainSDK.autoInitialize()
|
|
70
|
-
.then(() => console.log('SDK
|
|
70
|
+
.then(() => console.log('SDK 준비 완료'))
|
|
71
71
|
.catch(console.error);
|
|
72
72
|
}, []);
|
|
73
73
|
|
|
@@ -81,131 +81,131 @@ export default function App() {
|
|
|
81
81
|
}
|
|
82
82
|
```
|
|
83
83
|
|
|
84
|
-
## API
|
|
84
|
+
## API 레퍼런스
|
|
85
85
|
|
|
86
|
-
###
|
|
87
|
-
- `autoInitialize()` -
|
|
88
|
-
- `initialize(config)` -
|
|
89
|
-
- `login(user)` -
|
|
90
|
-
- `logout()` -
|
|
91
|
-
- `isLoggedIn()` -
|
|
92
|
-
- `getCurrentUser()` -
|
|
86
|
+
### 핵심 메서드
|
|
87
|
+
- `autoInitialize()` - app.json 설정을 사용한 자동 초기화
|
|
88
|
+
- `initialize(config)` - 수동 초기화
|
|
89
|
+
- `login(user)` - 사용자 로그인
|
|
90
|
+
- `logout()` - 사용자 로그아웃
|
|
91
|
+
- `isLoggedIn()` - 로그인 상태 확인
|
|
92
|
+
- `getCurrentUser()` - 현재 사용자 정보 조회
|
|
93
93
|
|
|
94
|
-
###
|
|
95
|
-
- `openOfferwall(placementId?)` -
|
|
96
|
-
- `openAdjoeOfferwall(placementId?)` -
|
|
94
|
+
### 오퍼월
|
|
95
|
+
- `openOfferwall(placementId?)` - 오퍼월 열기
|
|
96
|
+
- `openAdjoeOfferwall(placementId?)` - ADJOE 오퍼월 열기
|
|
97
|
+
- `openOfferwallNestAds(placementId)` - NestAds 오퍼월 열기
|
|
97
98
|
|
|
98
|
-
###
|
|
99
|
-
- `loadQuizList(unitId)` -
|
|
100
|
-
- `clickQuiz(unitId, quizId)` -
|
|
101
|
-
- `loadMissionList(unitId)` -
|
|
102
|
-
- `clickMission(unitId, missionId)` -
|
|
103
|
-
- `claimReward(unitId)` -
|
|
99
|
+
### 퀴즈 & 미션
|
|
100
|
+
- `loadQuizList(unitId)` - 퀴즈 목록 로드
|
|
101
|
+
- `clickQuiz(unitId, quizId)` - 퀴즈 클릭
|
|
102
|
+
- `loadMissionList(unitId)` - 미션 목록 로드
|
|
103
|
+
- `clickMission(unitId, missionId)` - 미션 클릭
|
|
104
|
+
- `claimReward(unitId)` - 보상 수령
|
|
104
105
|
|
|
105
|
-
###
|
|
106
|
-
- `getUserId()` -
|
|
107
|
-
- `getIFA()` -
|
|
108
|
-
- `isInitialized()` -
|
|
106
|
+
### 디버그
|
|
107
|
+
- `getUserId()` - 현재 사용자 ID 조회
|
|
108
|
+
- `getIFA()` - 광고 ID 조회
|
|
109
|
+
- `isInitialized()` - SDK 초기화 상태 확인
|
|
109
110
|
|
|
110
|
-
## 🔧
|
|
111
|
+
## 🔧 기술 노트
|
|
111
112
|
|
|
112
|
-
### Swift 5.5 (
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
### Swift 5.5 사용 (5.9 아님)
|
|
114
|
+
이 SDK는 **Swift 5.5**를 사용합니다. Swift 5.9에서 발견된 React Native 브리지의
|
|
115
|
+
선택적 매개변수 전달 문제를 피하기 위함입니다.
|
|
115
116
|
|
|
116
|
-
|
|
117
|
-
|
|
117
|
+
**배경:** 프로덕션 환경에서 Swift 5.9의 선택적 매개변수가 React Native로
|
|
118
|
+
제대로 전달되지 않아 조용히 실패하는 버그를 경험했습니다.
|
|
118
119
|
|
|
119
|
-
|
|
120
|
+
테스트 완료 환경:
|
|
120
121
|
- Xcode 14.x - 15.x
|
|
121
122
|
- Swift 5.5
|
|
122
123
|
- iOS 14.0+
|
|
123
124
|
|
|
124
|
-
### Kotlin
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
host app's version.
|
|
125
|
+
### Kotlin 표준 라이브러리
|
|
126
|
+
SDK는 네이티브 AdChain SDK에서 요구하는 `kotlin-stdlib:1.9.21`을 포함합니다.
|
|
127
|
+
버전 충돌이 발생하면 Gradle이 자동으로 호스트 앱의 버전으로 해결합니다.
|
|
128
128
|
|
|
129
|
-
### React Native
|
|
130
|
-
|
|
131
|
-
|
|
129
|
+
### React Native 의존성
|
|
130
|
+
SDK는 AAR의 중복 클래스를 피하기 위해 `react-android`에 대해 `compileOnly`를 사용합니다.
|
|
131
|
+
의존성은 호스트 애플리케이션에서 제공됩니다.
|
|
132
132
|
|
|
133
|
-
##
|
|
133
|
+
## 빌드 & 실행
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
|
-
# Prebuild (
|
|
136
|
+
# Prebuild (네이티브 코드 생성)
|
|
137
137
|
npx expo prebuild
|
|
138
138
|
|
|
139
|
-
#
|
|
139
|
+
# 플러그인 적용 확인
|
|
140
140
|
cat android/settings.gradle | grep jitpack
|
|
141
141
|
cat ios/Podfile | grep AdChainSDK
|
|
142
142
|
|
|
143
|
-
#
|
|
143
|
+
# Android 실행
|
|
144
144
|
npx expo run:android
|
|
145
145
|
|
|
146
|
-
#
|
|
146
|
+
# iOS 실행
|
|
147
147
|
npx expo run:ios
|
|
148
148
|
```
|
|
149
149
|
|
|
150
|
-
##
|
|
150
|
+
## 요구사항
|
|
151
151
|
|
|
152
152
|
- Expo SDK 50+
|
|
153
153
|
- React Native 0.74+
|
|
154
154
|
- iOS 14.0+
|
|
155
155
|
- Android API 24+
|
|
156
|
-
- **Development Build** (Expo Go
|
|
156
|
+
- **Development Build** (Expo Go 미지원)
|
|
157
157
|
|
|
158
|
-
##
|
|
158
|
+
## 문제 해결
|
|
159
159
|
|
|
160
|
-
### "SDK not initialized"
|
|
161
|
-
-
|
|
162
|
-
-
|
|
163
|
-
-
|
|
160
|
+
### "SDK not initialized" 오류
|
|
161
|
+
- app.json에 플러그인을 추가했는지 확인
|
|
162
|
+
- appKey와 appSecret이 올바른지 확인
|
|
163
|
+
- 다른 메서드 호출 전에 `autoInitialize()` 호출 확인
|
|
164
164
|
|
|
165
|
-
### "Expo config not found"
|
|
166
|
-
-
|
|
167
|
-
-
|
|
165
|
+
### "Expo config not found" 오류
|
|
166
|
+
- Expo Go를 사용 중일 가능성이 높습니다 (미지원)
|
|
167
|
+
- 사용: `npx expo run:android` 또는 `npx expo run:ios`
|
|
168
168
|
|
|
169
|
-
### "expo-constants not found"
|
|
170
|
-
-
|
|
169
|
+
### "expo-constants not found" 오류
|
|
170
|
+
- peer dependency 설치: `npx expo install expo-constants`
|
|
171
171
|
|
|
172
|
-
### Prebuild
|
|
173
|
-
-
|
|
174
|
-
-
|
|
172
|
+
### Prebuild 실패
|
|
173
|
+
- devDependencies에 @expo/config-plugins가 있는지 확인
|
|
174
|
+
- 시도: `rm -rf node_modules && npm install`
|
|
175
175
|
|
|
176
176
|
### JitPack not found (Android)
|
|
177
|
-
-
|
|
178
|
-
-
|
|
179
|
-
-
|
|
177
|
+
- settings.gradle에 maven { url "https://jitpack.io" }가 있는지 확인
|
|
178
|
+
- 인터넷 연결 확인
|
|
179
|
+
- 시도: `cd android && ./gradlew clean`
|
|
180
180
|
|
|
181
|
-
### Pod install
|
|
182
|
-
-
|
|
183
|
-
-
|
|
184
|
-
-
|
|
181
|
+
### Pod install 실패 (iOS)
|
|
182
|
+
- Git URL이 올바른지 확인
|
|
183
|
+
- 태그 v1.0.42가 존재하는지 확인
|
|
184
|
+
- 시도: `cd ios && rm -rf Pods Podfile.lock && pod install`
|
|
185
185
|
|
|
186
|
-
##
|
|
186
|
+
## 버전 호환성
|
|
187
187
|
|
|
188
|
-
|
|
|
189
|
-
|
|
190
|
-
| 1.0.0
|
|
188
|
+
| 패키지 버전 | Android SDK | iOS SDK | Swift | Expo SDK |
|
|
189
|
+
|------------|-------------|---------|-------|----------|
|
|
190
|
+
| 1.0.0 | v1.0.28 | v1.0.42 | 5.5 | 50-53 |
|
|
191
191
|
|
|
192
|
-
##
|
|
192
|
+
## 알려진 제한사항
|
|
193
193
|
|
|
194
194
|
### v1.0.0
|
|
195
|
-
- OTA
|
|
196
|
-
- Swift 5.9
|
|
197
|
-
- CocoaPods Trunk: AdChainSDK
|
|
195
|
+
- OTA 업데이트 (expo-updates) 아직 미지원 - Development Build 사용
|
|
196
|
+
- Swift 5.9 선택적 매개변수 버그 - 5.5 유지
|
|
197
|
+
- CocoaPods Trunk: AdChainSDK는 Git Pod 사용 (아직 Trunk 미등록)
|
|
198
198
|
|
|
199
|
-
###
|
|
200
|
-
- expo-updates
|
|
201
|
-
-
|
|
202
|
-
-
|
|
203
|
-
-
|
|
199
|
+
### v1.1.0 계획
|
|
200
|
+
- expo-updates 폴백 지원
|
|
201
|
+
- 조건부 iOS 플러그인 (Trunk vs Git)
|
|
202
|
+
- 서버 사이드 토큰 초기화
|
|
203
|
+
- 향상된 오류 메시지
|
|
204
204
|
|
|
205
|
-
##
|
|
205
|
+
## 라이선스
|
|
206
206
|
|
|
207
207
|
Proprietary
|
|
208
208
|
|
|
209
|
-
##
|
|
209
|
+
## 지원
|
|
210
210
|
|
|
211
|
-
|
|
211
|
+
이메일: contacts@1self.world
|
|
@@ -712,6 +712,35 @@ class AdchainSdkModule(private val reactContext: ReactApplicationContext)
|
|
|
712
712
|
}
|
|
713
713
|
}
|
|
714
714
|
|
|
715
|
+
@ReactMethod
|
|
716
|
+
fun openOfferwallNestAds(placementId: String, promise: Promise) {
|
|
717
|
+
try {
|
|
718
|
+
reactContext.currentActivity?.let { activity ->
|
|
719
|
+
val callback = object : OfferwallCallback {
|
|
720
|
+
override fun onOpened() {
|
|
721
|
+
promise.resolve(createResponse(true, "NestAds Offerwall opened"))
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
override fun onClosed() {
|
|
725
|
+
// 이미 resolve 되었으므로 무시
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
override fun onError(message: String) {
|
|
729
|
+
// 이미 resolve 되었으므로 무시
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
override fun onRewardEarned(amount: Int) {
|
|
733
|
+
// 이미 resolve 되었으므로 무시
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
AdchainSdk.openOfferwallNestAds(activity, placementId, callback)
|
|
738
|
+
} ?: promise.reject("NESTADS_ERROR", "Current activity is null")
|
|
739
|
+
} catch (t: Throwable) {
|
|
740
|
+
promise.reject("NESTADS_ERROR", t.message, t)
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
|
|
715
744
|
// ===== Event Emitter Methods =====
|
|
716
745
|
|
|
717
746
|
@ReactMethod
|
package/ios/AdchainSdk.swift
CHANGED
|
@@ -780,6 +780,55 @@ class AdchainSdkModule: RCTEventEmitter {
|
|
|
780
780
|
}
|
|
781
781
|
}
|
|
782
782
|
}
|
|
783
|
+
|
|
784
|
+
@objc func openOfferwallNestAds(_ placementId: NSString,
|
|
785
|
+
resolver: @escaping RCTPromiseResolveBlock,
|
|
786
|
+
rejecter: @escaping RCTPromiseRejectBlock) {
|
|
787
|
+
class OfferwallCallbackImpl: NSObject, OfferwallCallback {
|
|
788
|
+
let resolver: RCTPromiseResolveBlock
|
|
789
|
+
var hasResolved = false
|
|
790
|
+
|
|
791
|
+
init(resolver: @escaping RCTPromiseResolveBlock) {
|
|
792
|
+
self.resolver = resolver
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
func onOpened() {
|
|
796
|
+
if !hasResolved {
|
|
797
|
+
hasResolved = true
|
|
798
|
+
resolver([
|
|
799
|
+
"success": true,
|
|
800
|
+
"message": "NestAds Offerwall opened"
|
|
801
|
+
])
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
func onClosed() {
|
|
806
|
+
// 이미 resolve 되었으므로 무시
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
func onError(_ message: String) {
|
|
810
|
+
// 이미 resolve 되었으므로 무시
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
func onRewardEarned(_ amount: Int) {
|
|
814
|
+
// 이미 resolve 되었으므로 무시
|
|
815
|
+
}
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
DispatchQueue.main.async { [weak self] in
|
|
819
|
+
if let topVC = self?.getTopViewController() {
|
|
820
|
+
let callback = OfferwallCallbackImpl(resolver: resolver)
|
|
821
|
+
let finalPlacementId = placementId as String
|
|
822
|
+
AdchainSdk.shared.openOfferwallNestAds(
|
|
823
|
+
presentingViewController: topVC,
|
|
824
|
+
placementId: finalPlacementId,
|
|
825
|
+
callback: callback
|
|
826
|
+
)
|
|
827
|
+
} else {
|
|
828
|
+
rejecter("NESTADS_ERROR", "No view controller available", nil)
|
|
829
|
+
}
|
|
830
|
+
}
|
|
831
|
+
}
|
|
783
832
|
}
|
|
784
833
|
|
|
785
834
|
// MARK: - Objective-C Export
|
package/lib/module/index.js
CHANGED
|
@@ -85,7 +85,7 @@ class AdchainSDK {
|
|
|
85
85
|
const appKey = isIOS ? adchainIosAppKey : adchainAndroidAppKey;
|
|
86
86
|
const appSecret = isIOS ? adchainIosAppSecret : adchainAndroidAppSecret;
|
|
87
87
|
if (!appKey || !appSecret) {
|
|
88
|
-
throw new Error(`AdChain: Missing ${Platform.OS} configuration in app.json. ` + 'Please add AdChain SDK to plugins section:\n\n' + '{\n' + ' "expo": {\n' + ' "plugins": [\n' + ' ["@adchain
|
|
88
|
+
throw new Error(`AdChain: Missing ${Platform.OS} configuration in app.json. ` + 'Please add AdChain SDK to plugins section:\n\n' + '{\n' + ' "expo": {\n' + ' "plugins": [\n' + ' ["@1selfworld/adchain-sdk-react-native", {\n' + ' "android": {\n' + ' "appKey": "YOUR_ANDROID_APP_KEY",\n' + ' "appSecret": "YOUR_APP_SECRET"\n' + ' },\n' + ' "ios": {\n' + ' "appKey": "YOUR_IOS_APP_KEY",\n' + ' "appSecret": "YOUR_APP_SECRET"\n' + ' }\n' + ' }]\n' + ' ]\n' + ' }\n' + '}');
|
|
89
89
|
}
|
|
90
90
|
console.log(`[AdChain] Auto-initializing with ${Platform.OS} credentials...`);
|
|
91
91
|
return await this.initialize({
|
|
@@ -156,6 +156,9 @@ class AdchainSDK {
|
|
|
156
156
|
// SDK requires placementId, use empty string if not provided
|
|
157
157
|
return AdchainSdk.openAdjoeOfferwall(placementId || '');
|
|
158
158
|
}
|
|
159
|
+
async openOfferwallNestAds(placementId) {
|
|
160
|
+
return AdchainSdk.openOfferwallNestAds(placementId);
|
|
161
|
+
}
|
|
159
162
|
|
|
160
163
|
// 6. Debug/Utility Methods (3개)
|
|
161
164
|
async isInitialized() {
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","hasExpoNative","ExponentConstants","AdchainOfferwallView","LINKING_ERROR","select","ios","default","AdchainSdk","Proxy","get","Error","adchainEventEmitter","AdchainSDK","initialize","config","options","environment","timeout","appKey","appSecret","autoInitialize","OS","Constants","require","e","expoConfig","adchainAndroidAppKey","adchainAndroidAppSecret","adchainIosAppKey","adchainIosAppSecret","adchainEnvironment","adchainTimeout","extra","isIOS","console","log","error","login","user","userInfo","gender","birthYear","customProperties","userId","logout","isLoggedIn","getCurrentUser","loadQuizList","unitId","clickQuiz","quizId","loadMissionList","clickMission","missionId","claimReward","openOfferwall","placementId","openOfferwallWithUrl","url","openExternalBrowser","openAdjoeOfferwall","isInitialized","getUserId","getIFA","getBannerInfo","addQuizCompletedListener","callback","addListener","addMissionCompletedListener","addMissionProgressedListener","addMissionRefreshedListener","sdk"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,EAAEC,kBAAkB,QAAQ,cAAc;;AAE1E;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAG,CAAC,MAAM;EAC3B,IAAI;IACF,OAAO,CAAC,CAACH,aAAa,CAACI,iBAAiB;EAC1C,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF,CAAC,EAAE,CAAC;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASC,oBAAoB,QAAQ,2BAAwB;AAG7D,MAAMC,aAAa,GACjB,sEAAsE,GACtEL,QAAQ,CAACM,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,UAAU,GAAGV,aAAa,CAACU,UAAU,GACvCV,aAAa,CAACU,UAAU,GACxB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;;AAEL;AACA,MAAMQ,mBAAmB,GAAG,IAAIZ,kBAAkB,CAACQ,UAAU,CAAC;;AAE9D;;AA0DA;;AAEA,MAAMK,UAAU,CAAC;EACf;EACA,MAAMC,UAAUA,CAACC,MAAqB,EAA4B;IAChE;IACA,MAAMC,OAAO,GAAG;MACdC,WAAW,EAAEF,MAAM,CAACE,WAAW;MAC/BC,OAAO,EAAEH,MAAM,CAACG;IAClB,CAAC;IAED,OAAOV,UAAU,CAACM,UAAU,CAACC,MAAM,CAACI,MAAM,EAAEJ,MAAM,CAACK,SAAS,EAAEJ,OAAO,CAAC;EACxE;;EAEA;EACA,MAAMK,cAAcA,CAAA,EAA6B;IAC/C,IAAI;MACF;MACA,IAAI,CAACpB,aAAa,EAAE;QAClB,MAAM,IAAIU,KAAK,CACb,mEAAmE,GACjE,sBAAsB,GACtB,eAAeZ,QAAQ,CAACuB,EAAE,IAAI,GAC9B,uCAAuC,GACvC,uFACJ,CAAC;MACH;;MAEA;MACA;MACA,IAAIC,SAAc,GAAG,IAAI;MACzB,IAAI;QACF;QACAA,SAAS,GAAGC,OAAO,CAAC,gBAAgB,CAAC,CAACjB,OAAO;MAC/C,CAAC,CAAC,OAAOkB,CAAC,EAAE;QACV,MAAM,IAAId,KAAK,CACb,oDAAoD,GAClD,UAAUc,CAAC,MAAM,GACjB,8CAA8C,GAC9C,4BACJ,CAAC;MACH;MAEA,MAAMC,UAAU,GAAGH,SAAS,CAACG,UAAU;MAEvC,IAAI,CAACA,UAAU,EAAE;QACf,MAAM,IAAIf,KAAK,CACb,kCAAkC,GAChC,qEAAqE,GACrE,sDACJ,CAAC;MACH;MAEA,MAAM;QACJgB,oBAAoB;QACpBC,uBAAuB;QACvBC,gBAAgB;QAChBC,mBAAmB;QACnBC,kBAAkB;QAClBC;MACF,CAAC,GAAGN,UAAU,CAACO,KAAK,IAAI,CAAC,CAAC;;MAE1B;MACA,MAAMC,KAAK,GAAGnC,QAAQ,CAACuB,EAAE,KAAK,KAAK;MACnC,MAAMH,MAAM,GAAGe,KAAK,GAAGL,gBAAgB,GAAGF,oBAAoB;MAC9D,MAAMP,SAAS,GAAGc,KAAK,GAAGJ,mBAAmB,GAAGF,uBAAuB;MAEvE,IAAI,CAACT,MAAM,IAAI,CAACC,SAAS,EAAE;QACzB,MAAM,IAAIT,KAAK,CACb,oBAAoBZ,QAAQ,CAACuB,EAAE,8BAA8B,GAC3D,gDAAgD,GAChD,KAAK,GACL,eAAe,GACf,oBAAoB,GACpB,
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","hasExpoNative","ExponentConstants","AdchainOfferwallView","LINKING_ERROR","select","ios","default","AdchainSdk","Proxy","get","Error","adchainEventEmitter","AdchainSDK","initialize","config","options","environment","timeout","appKey","appSecret","autoInitialize","OS","Constants","require","e","expoConfig","adchainAndroidAppKey","adchainAndroidAppSecret","adchainIosAppKey","adchainIosAppSecret","adchainEnvironment","adchainTimeout","extra","isIOS","console","log","error","login","user","userInfo","gender","birthYear","customProperties","userId","logout","isLoggedIn","getCurrentUser","loadQuizList","unitId","clickQuiz","quizId","loadMissionList","clickMission","missionId","claimReward","openOfferwall","placementId","openOfferwallWithUrl","url","openExternalBrowser","openAdjoeOfferwall","openOfferwallNestAds","isInitialized","getUserId","getIFA","getBannerInfo","addQuizCompletedListener","callback","addListener","addMissionCompletedListener","addMissionProgressedListener","addMissionRefreshedListener","sdk"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -65,6 +65,7 @@ declare class AdchainSDK {
|
|
|
65
65
|
openOfferwallWithUrl(url: string, placementId?: string): Promise<SuccessResponse>;
|
|
66
66
|
openExternalBrowser(url: string, placementId?: string): Promise<SuccessResponse>;
|
|
67
67
|
openAdjoeOfferwall(placementId?: string): Promise<SuccessResponse>;
|
|
68
|
+
openOfferwallNestAds(placementId: string): Promise<SuccessResponse>;
|
|
68
69
|
isInitialized(): Promise<boolean>;
|
|
69
70
|
getUserId(): Promise<string>;
|
|
70
71
|
getIFA(): Promise<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
const {
|
|
1
|
+
const {
|
|
2
|
+
withSettingsGradle,
|
|
3
|
+
withProjectBuildGradle,
|
|
4
|
+
} = require('@expo/config-plugins');
|
|
2
5
|
|
|
3
6
|
/**
|
|
4
|
-
* v4.
|
|
7
|
+
* v4.2: Android 빌드 설정
|
|
8
|
+
* - settings.gradle에 JitPack repository 추가
|
|
9
|
+
* - build.gradle에 adjoe Maven repository 추가
|
|
5
10
|
* - AGP 8+ 호환
|
|
6
|
-
* - dependencyResolutionManagement 사용
|
|
7
|
-
* - 의존성은 라이브러리 모듈에서 선언 (중복 방지)
|
|
8
11
|
*/
|
|
9
12
|
function withAdchainAndroid(config) {
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
// 1. settings.gradle에 JitPack 추가
|
|
14
|
+
config = withSettingsGradle(config, (cfg) => {
|
|
15
|
+
let settingsGradle = cfg.modResults.contents;
|
|
12
16
|
|
|
13
17
|
// JitPack repository 추가
|
|
14
18
|
if (!settingsGradle.includes('maven { url "https://jitpack.io" }')) {
|
|
@@ -48,9 +52,45 @@ dependencyResolutionManagement {
|
|
|
48
52
|
}
|
|
49
53
|
}
|
|
50
54
|
|
|
51
|
-
|
|
52
|
-
return
|
|
55
|
+
cfg.modResults.contents = settingsGradle;
|
|
56
|
+
return cfg;
|
|
53
57
|
});
|
|
58
|
+
|
|
59
|
+
// 2. build.gradle에 adjoe Maven repository 추가
|
|
60
|
+
config = withProjectBuildGradle(config, (cfg) => {
|
|
61
|
+
let buildGradle = cfg.modResults.contents;
|
|
62
|
+
|
|
63
|
+
// adjoe Maven repository 추가
|
|
64
|
+
if (!buildGradle.includes('releases.adjoe.io/maven')) {
|
|
65
|
+
// allprojects { repositories { ... } } 블록 찾기
|
|
66
|
+
const allprojectsMatch = buildGradle.match(
|
|
67
|
+
/(allprojects\s*\{\s*repositories\s*\{)/
|
|
68
|
+
);
|
|
69
|
+
|
|
70
|
+
if (allprojectsMatch) {
|
|
71
|
+
// allprojects 블록에 추가
|
|
72
|
+
buildGradle = buildGradle.replace(
|
|
73
|
+
allprojectsMatch[0],
|
|
74
|
+
`${allprojectsMatch[0]}\n maven { url 'https://releases.adjoe.io/maven' }`
|
|
75
|
+
);
|
|
76
|
+
} else {
|
|
77
|
+
// allprojects 블록이 없으면 파일 끝에 추가
|
|
78
|
+
buildGradle += `
|
|
79
|
+
// AdChain SDK - adjoe Maven repository
|
|
80
|
+
allprojects {
|
|
81
|
+
repositories {
|
|
82
|
+
maven { url 'https://releases.adjoe.io/maven' }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
`;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
cfg.modResults.contents = buildGradle;
|
|
90
|
+
return cfg;
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
return config;
|
|
54
94
|
}
|
|
55
95
|
|
|
56
96
|
module.exports = withAdchainAndroid;
|
package/src/index.tsx
CHANGED
|
@@ -174,7 +174,7 @@ class AdchainSDK {
|
|
|
174
174
|
'{\n' +
|
|
175
175
|
' "expo": {\n' +
|
|
176
176
|
' "plugins": [\n' +
|
|
177
|
-
' ["@adchain
|
|
177
|
+
' ["@1selfworld/adchain-sdk-react-native", {\n' +
|
|
178
178
|
' "android": {\n' +
|
|
179
179
|
' "appKey": "YOUR_ANDROID_APP_KEY",\n' +
|
|
180
180
|
' "appSecret": "YOUR_APP_SECRET"\n' +
|
|
@@ -282,6 +282,10 @@ class AdchainSDK {
|
|
|
282
282
|
return AdchainSdk.openAdjoeOfferwall(placementId || '');
|
|
283
283
|
}
|
|
284
284
|
|
|
285
|
+
async openOfferwallNestAds(placementId: string): Promise<SuccessResponse> {
|
|
286
|
+
return AdchainSdk.openOfferwallNestAds(placementId);
|
|
287
|
+
}
|
|
288
|
+
|
|
285
289
|
// 6. Debug/Utility Methods (3개)
|
|
286
290
|
async isInitialized(): Promise<boolean> {
|
|
287
291
|
return AdchainSdk.isInitialized();
|