@1selfworld/adchain-sdk-react-native 1.0.11 → 1.0.12

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 CHANGED
@@ -1,21 +1,21 @@
1
- # @adchain/expo-sdk
1
+ # @1selfworld/adchain-sdk-react-native
2
2
 
3
- AdChain SDK for React Native with full Expo support.
3
+ React Native Expo 위한 AdChain SDK입니다.
4
4
 
5
- ## 🚨 Important Notices
5
+ ## 🚨 중요 공지
6
6
 
7
- ### Expo Go Not Supported
8
- This SDK includes native code and **does not work in Expo Go**.
7
+ ### Expo Go 미지원
8
+ SDK 네이티브 코드를 포함하고 있어 **Expo Go에서 작동하지 않습니다**.
9
9
 
10
- You must use:
11
- - ✅ Development Build: `npx expo run:android` or `npx expo run:ios`
10
+ 반드시 다음 방법을 사용하세요:
11
+ - ✅ Development Build: `npx expo run:android` 또는 `npx expo run:ios`
12
12
  - ✅ EAS Build: `eas build --profile development`
13
13
 
14
- ### 🔐 Security Notice
14
+ ### 🔐 보안 주의사항
15
15
  app.json에 저장된 API 키는 앱 번들에 포함됩니다.
16
16
 
17
17
  **권장사항:**
18
- - ✅ **개발/테스트:** app.json 사용 OK
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
- ## Installation
31
+ ## 설치
32
32
 
33
33
  ```bash
34
- npx expo install @adchain/expo-sdk expo-constants
34
+ npx expo install @1selfworld/adchain-sdk-react-native expo-constants
35
35
  ```
36
36
 
37
- **Note:** `expo-constants` is a peer dependency. Install it separately.
37
+ **참고:** `expo-constants`는 peerDependency입니다. 별도로 설치해야 합니다.
38
38
 
39
- ## Configuration
39
+ ## 설정
40
40
 
41
- Add to your `app.json`:
41
+ `app.json`에 다음을 추가하세요:
42
42
 
43
43
  ```json
44
44
  {
45
45
  "expo": {
46
46
  "plugins": [
47
47
  [
48
- "@adchain/expo-sdk",
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
- ## Usage
60
+ ## 사용법
61
61
 
62
62
  ```typescript
63
63
  import { useEffect } from 'react';
64
- import AdchainSDK from '@adchain/expo-sdk';
64
+ import AdchainSDK from '@1selfworld/adchain-sdk-react-native';
65
65
 
66
66
  export default function App() {
67
67
  useEffect(() => {
68
- // Auto-initialize using app.json config
68
+ // app.json 설정을 사용한 자동 초기화
69
69
  AdchainSDK.autoInitialize()
70
- .then(() => console.log('SDK ready'))
70
+ .then(() => console.log('SDK 준비 완료'))
71
71
  .catch(console.error);
72
72
  }, []);
73
73
 
@@ -81,131 +81,130 @@ export default function App() {
81
81
  }
82
82
  ```
83
83
 
84
- ## API Reference
84
+ ## API 레퍼런스
85
85
 
86
- ### Core Methods
87
- - `autoInitialize()` - Auto-initialize using app.json config
88
- - `initialize(config)` - Manual initialization
89
- - `login(user)` - User login
90
- - `logout()` - User logout
91
- - `isLoggedIn()` - Check login status
92
- - `getCurrentUser()` - Get current user info
86
+ ### 핵심 메서드
87
+ - `autoInitialize()` - app.json 설정을 사용한 자동 초기화
88
+ - `initialize(config)` - 수동 초기화
89
+ - `login(user)` - 사용자 로그인
90
+ - `logout()` - 사용자 로그아웃
91
+ - `isLoggedIn()` - 로그인 상태 확인
92
+ - `getCurrentUser()` - 현재 사용자 정보 조회
93
93
 
94
- ### Offerwall
95
- - `openOfferwall(placementId?)` - Open offerwall
96
- - `openAdjoeOfferwall(placementId?)` - Open ADJOE offerwall
94
+ ### 오퍼월
95
+ - `openOfferwall(placementId?)` - 오퍼월 열기
96
+ - `openAdjoeOfferwall(placementId?)` - ADJOE 오퍼월 열기
97
97
 
98
- ### Quiz & Mission
99
- - `loadQuizList(unitId)` - Load quiz list
100
- - `clickQuiz(unitId, quizId)` - Click quiz
101
- - `loadMissionList(unitId)` - Load mission list
102
- - `clickMission(unitId, missionId)` - Click mission
103
- - `claimReward(unitId)` - Claim reward
98
+ ### 퀴즈 & 미션
99
+ - `loadQuizList(unitId)` - 퀴즈 목록 로드
100
+ - `clickQuiz(unitId, quizId)` - 퀴즈 클릭
101
+ - `loadMissionList(unitId)` - 미션 목록 로드
102
+ - `clickMission(unitId, missionId)` - 미션 클릭
103
+ - `claimReward(unitId)` - 보상 수령
104
104
 
105
- ### Debug
106
- - `getUserId()` - Get current user ID
107
- - `getIFA()` - Get advertising ID
108
- - `isInitialized()` - Check SDK initialization
105
+ ### 디버그
106
+ - `getUserId()` - 현재 사용자 ID 조회
107
+ - `getIFA()` - 광고 ID 조회
108
+ - `isInitialized()` - SDK 초기화 상태 확인
109
109
 
110
- ## 🔧 Technical Notes
110
+ ## 🔧 기술 노트
111
111
 
112
- ### Swift 5.5 (Not 5.9)
113
- This SDK uses **Swift 5.5** due to known issues with optional parameter passing
114
- in React Native bridges with Swift 5.9.
112
+ ### Swift 5.5 사용 (5.9 아님)
113
+ SDK **Swift 5.5**를 사용합니다. Swift 5.9에서 발견된 React Native 브리지의
114
+ 선택적 매개변수 전달 문제를 피하기 위함입니다.
115
115
 
116
- **Background:** In production, we experienced bugs where optional parameters in
117
- Swift 5.9 were not properly passed to React Native, causing silent failures.
116
+ **배경:** 프로덕션 환경에서 Swift 5.9의 선택적 매개변수가 React Native로
117
+ 제대로 전달되지 않아 조용히 실패하는 버그를 경험했습니다.
118
118
 
119
- Tested and stable with:
119
+ 테스트 완료 환경:
120
120
  - Xcode 14.x - 15.x
121
121
  - Swift 5.5
122
122
  - iOS 14.0+
123
123
 
124
- ### Kotlin Standard Library
125
- The SDK includes `kotlin-stdlib:1.9.21` as required by the native AdChain SDK.
126
- If you experience version conflicts, Gradle will automatically resolve to the
127
- host app's version.
124
+ ### Kotlin 표준 라이브러리
125
+ SDK는 네이티브 AdChain SDK에서 요구하는 `kotlin-stdlib:1.9.21`을 포함합니다.
126
+ 버전 충돌이 발생하면 Gradle 자동으로 호스트 앱의 버전으로 해결합니다.
128
127
 
129
- ### React Native Dependency
130
- The SDK uses `compileOnly` for `react-android` to avoid duplicate classes in
131
- the AAR. The dependency is provided by the host application.
128
+ ### React Native 의존성
129
+ SDK AAR의 중복 클래스를 피하기 위해 `react-android`에 대해 `compileOnly`를 사용합니다.
130
+ 의존성은 호스트 애플리케이션에서 제공됩니다.
132
131
 
133
- ## Build & Run
132
+ ## 빌드 & 실행
134
133
 
135
134
  ```bash
136
- # Prebuild (generate native code)
135
+ # Prebuild (네이티브 코드 생성)
137
136
  npx expo prebuild
138
137
 
139
- # Verify plugin applied
138
+ # 플러그인 적용 확인
140
139
  cat android/settings.gradle | grep jitpack
141
140
  cat ios/Podfile | grep AdChainSDK
142
141
 
143
- # Run on Android
142
+ # Android 실행
144
143
  npx expo run:android
145
144
 
146
- # Run on iOS
145
+ # iOS 실행
147
146
  npx expo run:ios
148
147
  ```
149
148
 
150
- ## Requirements
149
+ ## 요구사항
151
150
 
152
151
  - Expo SDK 50+
153
152
  - React Native 0.74+
154
153
  - iOS 14.0+
155
154
  - Android API 24+
156
- - **Development Build** (Expo Go not supported)
155
+ - **Development Build** (Expo Go 미지원)
157
156
 
158
- ## Troubleshooting
157
+ ## 문제 해결
159
158
 
160
- ### "SDK not initialized" error
161
- - Make sure you added the plugin to app.json
162
- - Check that appKey and appSecret are correct
163
- - Verify you called `autoInitialize()` before other methods
159
+ ### "SDK not initialized" 오류
160
+ - app.json에 플러그인을 추가했는지 확인
161
+ - appKey appSecret 올바른지 확인
162
+ - 다른 메서드 호출 전에 `autoInitialize()` 호출 확인
164
163
 
165
- ### "Expo config not found" error
166
- - You're probably using Expo Go (not supported)
167
- - Use: `npx expo run:android` or `npx expo run:ios`
164
+ ### "Expo config not found" 오류
165
+ - Expo Go를 사용 중일 가능성이 높습니다 (미지원)
166
+ - 사용: `npx expo run:android` 또는 `npx expo run:ios`
168
167
 
169
- ### "expo-constants not found"
170
- - Install peer dependency: `npx expo install expo-constants`
168
+ ### "expo-constants not found" 오류
169
+ - peer dependency 설치: `npx expo install expo-constants`
171
170
 
172
- ### Prebuild fails
173
- - Check @expo/config-plugins is in devDependencies
174
- - Try: `rm -rf node_modules && npm install`
171
+ ### Prebuild 실패
172
+ - devDependencies에 @expo/config-plugins 있는지 확인
173
+ - 시도: `rm -rf node_modules && npm install`
175
174
 
176
175
  ### JitPack not found (Android)
177
- - Verify settings.gradle has maven { url "https://jitpack.io" }
178
- - Check internet connection
179
- - Try: cd android && ./gradlew clean
176
+ - settings.gradle maven { url "https://jitpack.io" }가 있는지 확인
177
+ - 인터넷 연결 확인
178
+ - 시도: `cd android && ./gradlew clean`
180
179
 
181
- ### Pod install fails (iOS)
182
- - Check Git URL is correct
183
- - Verify tag v1.0.42 exists
184
- - Try: cd ios && rm -rf Pods Podfile.lock && pod install
180
+ ### Pod install 실패 (iOS)
181
+ - Git URL 올바른지 확인
182
+ - 태그 v1.0.42 존재하는지 확인
183
+ - 시도: `cd ios && rm -rf Pods Podfile.lock && pod install`
185
184
 
186
- ## Version Compatibility
185
+ ## 버전 호환성
187
186
 
188
- | Package Version | Android SDK | iOS SDK | Swift | Expo SDK |
189
- |----------------|-------------|---------|-------|----------|
190
- | 1.0.0 | v1.0.28 | v1.0.42 | 5.5 | 50-53 |
187
+ | 패키지 버전 | Android SDK | iOS SDK | Swift | Expo SDK |
188
+ |------------|-------------|---------|-------|----------|
189
+ | 1.0.0 | v1.0.28 | v1.0.42 | 5.5 | 50-53 |
191
190
 
192
- ## Known Limitations
191
+ ## 알려진 제한사항
193
192
 
194
193
  ### v1.0.0
195
- - OTA updates (expo-updates) not yet supported - use Development Build
196
- - Swift 5.9 optional parameter bug - staying on 5.5
197
- - CocoaPods Trunk: AdChainSDK uses Git Pod (not on Trunk yet)
194
+ - OTA 업데이트 (expo-updates) 아직 미지원 - Development Build 사용
195
+ - Swift 5.9 선택적 매개변수 버그 - 5.5 유지
196
+ - CocoaPods Trunk: AdChainSDK Git Pod 사용 (아직 Trunk 미등록)
198
197
 
199
- ### Planned for v1.1.0
200
- - expo-updates fallback support
201
- - Conditional iOS plugin (Trunk vs Git)
202
- - Server-side token initialization
203
- - Enhanced error messages
198
+ ### v1.1.0 계획
199
+ - expo-updates 폴백 지원
200
+ - 조건부 iOS 플러그인 (Trunk vs Git)
201
+ - 서버 사이드 토큰 초기화
202
+ - 향상된 오류 메시지
204
203
 
205
- ## License
204
+ ## 라이선스
206
205
 
207
206
  Proprietary
208
207
 
209
- ## Support
208
+ ## 지원
210
209
 
211
- Email: contacts@1self.world
210
+ 이메일: contacts@1self.world
@@ -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/expo-sdk", {\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' + '}');
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({
@@ -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,iCAAiC,GACjC,wBAAwB,GACxB,+CAA+C,GAC/C,4CAA4C,GAC5C,cAAc,GACd,oBAAoB,GACpB,2CAA2C,GAC3C,4CAA4C,GAC5C,aAAa,GACb,YAAY,GACZ,SAAS,GACT,OAAO,GACP,GACJ,CAAC;MACH;MAEAa,OAAO,CAACC,GAAG,CACT,oCAAoCrC,QAAQ,CAACuB,EAAE,iBACjD,CAAC;MAED,OAAO,MAAM,IAAI,CAACR,UAAU,CAAC;QAC3BK,MAAM;QACNC,SAAS;QACTH,WAAW,EAAEc,kBAAkB,IAAI,YAAY;QAC/Cb,OAAO,EAAEc;MACX,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOK,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;MACxD,MAAMA,KAAK;IACb;EACF;;EAEA;EACA,MAAMC,KAAKA,CAACC,IAAiB,EAA4B;IACvD;IACA,MAAMC,QAAQ,GAAG;MACfC,MAAM,EAAEF,IAAI,CAACE,MAAM;MACnBC,SAAS,EAAEH,IAAI,CAACG,SAAS;MACzBC,gBAAgB,EAAEJ,IAAI,CAACI;IACzB,CAAC;IAED,OAAOnC,UAAU,CAAC8B,KAAK,CAACC,IAAI,CAACK,MAAM,EAAEJ,QAAQ,CAAC;EAChD;EAEA,MAAMK,MAAMA,CAAA,EAA6B;IACvC,OAAOrC,UAAU,CAACqC,MAAM,CAAC,CAAC;EAC5B;EAEA,MAAMC,UAAUA,CAAA,EAAqB;IACnC,OAAOtC,UAAU,CAACsC,UAAU,CAAC,CAAC;EAChC;EAEA,MAAMC,cAAcA,CAAA,EAAgC;IAClD,OAAOvC,UAAU,CAACuC,cAAc,CAAC,CAAC;EACpC;;EAEA;EACA,MAAMC,YAAYA,CAACC,MAAc,EAAyB;IACxD,OAAOzC,UAAU,CAACwC,YAAY,CAACC,MAAM,CAAC;EACxC;EAEA,MAAMC,SAASA,CAACD,MAAc,EAAEE,MAAc,EAA4B;IACxE,OAAO3C,UAAU,CAAC0C,SAAS,CAACD,MAAM,EAAEE,MAAM,CAAC;EAC7C;;EAEA;EACA,MAAMC,eAAeA,CAACH,MAAc,EAAgC;IAClE,OAAOzC,UAAU,CAAC4C,eAAe,CAACH,MAAM,CAAC;EAC3C;EAEA,MAAMI,YAAYA,CAChBJ,MAAc,EACdK,SAAiB,EACS;IAC1B,OAAO9C,UAAU,CAAC6C,YAAY,CAACJ,MAAM,EAAEK,SAAS,CAAC;EACnD;EAEA,MAAMC,WAAWA,CAACN,MAAc,EAA4B;IAC1D,OAAOzC,UAAU,CAAC+C,WAAW,CAACN,MAAM,CAAC;EACvC;;EAEA;EACA,MAAMO,aAAaA,CAACC,WAAoB,EAA4B;IAClE;IACA,OAAOjD,UAAU,CAACgD,aAAa,CAACC,WAAW,IAAI,EAAE,CAAC;EACpD;EAEA,MAAMC,oBAAoBA,CACxBC,GAAW,EACXF,WAAoB,EACM;IAC1B;IACA,OAAOjD,UAAU,CAACkD,oBAAoB,CAACC,GAAG,EAAEF,WAAW,IAAI,EAAE,CAAC;EAChE;EAEA,MAAMG,mBAAmBA,CACvBD,GAAW,EACXF,WAAoB,EACM;IAC1B;IACA,OAAOjD,UAAU,CAACoD,mBAAmB,CAACD,GAAG,EAAEF,WAAW,IAAI,EAAE,CAAC;EAC/D;EAEA,MAAMI,kBAAkBA,CAACJ,WAAoB,EAA4B;IACvE;IACA,OAAOjD,UAAU,CAACqD,kBAAkB,CAACJ,WAAW,IAAI,EAAE,CAAC;EACzD;;EAEA;EACA,MAAMK,aAAaA,CAAA,EAAqB;IACtC,OAAOtD,UAAU,CAACsD,aAAa,CAAC,CAAC;EACnC;EAEA,MAAMC,SAASA,CAAA,EAAoB;IACjC,OAAOvD,UAAU,CAACuD,SAAS,CAAC,CAAC;EAC/B;EAEA,MAAMC,MAAMA,CAAA,EAAoB;IAC9B,OAAOxD,UAAU,CAACwD,MAAM,CAAC,CAAC;EAC5B;;EAEA;EACA,MAAMC,aAAaA,CAACR,WAAmB,EAAgB;IACrD,OAAOjD,UAAU,CAACyD,aAAa,CAACR,WAAW,CAAC;EAC9C;AACF;;AAEA;;AAEA,OAAO,SAASS,wBAAwBA,CACtCC,QAA6D,EAC7D;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CAAC,iBAAiB,EAAED,QAAe,CAAC;AAC5E;AAEA,OAAO,SAASE,2BAA2BA,CACzCF,QAAgE,EAChE;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CAAC,oBAAoB,EAAED,QAAe,CAAC;AAC/E;AAEA,OAAO,SAASG,4BAA4BA,CAC1CH,QAAgE,EAChE;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CACpC,qBAAqB,EACrBD,QACF,CAAC;AACH;AAEA,OAAO,SAASI,2BAA2BA,CACzCJ,QAA6C,EAC7C;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CAAC,oBAAoB,EAAED,QAAe,CAAC;AAC/E;;AAEA;;AAEA,MAAMK,GAAG,GAAG,IAAI3D,UAAU,CAAC,CAAC;AAC5B,eAAe2D,GAAG","ignoreList":[]}
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,oDAAoD,GACpD,wBAAwB,GACxB,+CAA+C,GAC/C,4CAA4C,GAC5C,cAAc,GACd,oBAAoB,GACpB,2CAA2C,GAC3C,4CAA4C,GAC5C,aAAa,GACb,YAAY,GACZ,SAAS,GACT,OAAO,GACP,GACJ,CAAC;MACH;MAEAa,OAAO,CAACC,GAAG,CACT,oCAAoCrC,QAAQ,CAACuB,EAAE,iBACjD,CAAC;MAED,OAAO,MAAM,IAAI,CAACR,UAAU,CAAC;QAC3BK,MAAM;QACNC,SAAS;QACTH,WAAW,EAAEc,kBAAkB,IAAI,YAAY;QAC/Cb,OAAO,EAAEc;MACX,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOK,KAAK,EAAE;MACdF,OAAO,CAACE,KAAK,CAAC,kCAAkC,EAAEA,KAAK,CAAC;MACxD,MAAMA,KAAK;IACb;EACF;;EAEA;EACA,MAAMC,KAAKA,CAACC,IAAiB,EAA4B;IACvD;IACA,MAAMC,QAAQ,GAAG;MACfC,MAAM,EAAEF,IAAI,CAACE,MAAM;MACnBC,SAAS,EAAEH,IAAI,CAACG,SAAS;MACzBC,gBAAgB,EAAEJ,IAAI,CAACI;IACzB,CAAC;IAED,OAAOnC,UAAU,CAAC8B,KAAK,CAACC,IAAI,CAACK,MAAM,EAAEJ,QAAQ,CAAC;EAChD;EAEA,MAAMK,MAAMA,CAAA,EAA6B;IACvC,OAAOrC,UAAU,CAACqC,MAAM,CAAC,CAAC;EAC5B;EAEA,MAAMC,UAAUA,CAAA,EAAqB;IACnC,OAAOtC,UAAU,CAACsC,UAAU,CAAC,CAAC;EAChC;EAEA,MAAMC,cAAcA,CAAA,EAAgC;IAClD,OAAOvC,UAAU,CAACuC,cAAc,CAAC,CAAC;EACpC;;EAEA;EACA,MAAMC,YAAYA,CAACC,MAAc,EAAyB;IACxD,OAAOzC,UAAU,CAACwC,YAAY,CAACC,MAAM,CAAC;EACxC;EAEA,MAAMC,SAASA,CAACD,MAAc,EAAEE,MAAc,EAA4B;IACxE,OAAO3C,UAAU,CAAC0C,SAAS,CAACD,MAAM,EAAEE,MAAM,CAAC;EAC7C;;EAEA;EACA,MAAMC,eAAeA,CAACH,MAAc,EAAgC;IAClE,OAAOzC,UAAU,CAAC4C,eAAe,CAACH,MAAM,CAAC;EAC3C;EAEA,MAAMI,YAAYA,CAChBJ,MAAc,EACdK,SAAiB,EACS;IAC1B,OAAO9C,UAAU,CAAC6C,YAAY,CAACJ,MAAM,EAAEK,SAAS,CAAC;EACnD;EAEA,MAAMC,WAAWA,CAACN,MAAc,EAA4B;IAC1D,OAAOzC,UAAU,CAAC+C,WAAW,CAACN,MAAM,CAAC;EACvC;;EAEA;EACA,MAAMO,aAAaA,CAACC,WAAoB,EAA4B;IAClE;IACA,OAAOjD,UAAU,CAACgD,aAAa,CAACC,WAAW,IAAI,EAAE,CAAC;EACpD;EAEA,MAAMC,oBAAoBA,CACxBC,GAAW,EACXF,WAAoB,EACM;IAC1B;IACA,OAAOjD,UAAU,CAACkD,oBAAoB,CAACC,GAAG,EAAEF,WAAW,IAAI,EAAE,CAAC;EAChE;EAEA,MAAMG,mBAAmBA,CACvBD,GAAW,EACXF,WAAoB,EACM;IAC1B;IACA,OAAOjD,UAAU,CAACoD,mBAAmB,CAACD,GAAG,EAAEF,WAAW,IAAI,EAAE,CAAC;EAC/D;EAEA,MAAMI,kBAAkBA,CAACJ,WAAoB,EAA4B;IACvE;IACA,OAAOjD,UAAU,CAACqD,kBAAkB,CAACJ,WAAW,IAAI,EAAE,CAAC;EACzD;;EAEA;EACA,MAAMK,aAAaA,CAAA,EAAqB;IACtC,OAAOtD,UAAU,CAACsD,aAAa,CAAC,CAAC;EACnC;EAEA,MAAMC,SAASA,CAAA,EAAoB;IACjC,OAAOvD,UAAU,CAACuD,SAAS,CAAC,CAAC;EAC/B;EAEA,MAAMC,MAAMA,CAAA,EAAoB;IAC9B,OAAOxD,UAAU,CAACwD,MAAM,CAAC,CAAC;EAC5B;;EAEA;EACA,MAAMC,aAAaA,CAACR,WAAmB,EAAgB;IACrD,OAAOjD,UAAU,CAACyD,aAAa,CAACR,WAAW,CAAC;EAC9C;AACF;;AAEA;;AAEA,OAAO,SAASS,wBAAwBA,CACtCC,QAA6D,EAC7D;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CAAC,iBAAiB,EAAED,QAAe,CAAC;AAC5E;AAEA,OAAO,SAASE,2BAA2BA,CACzCF,QAAgE,EAChE;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CAAC,oBAAoB,EAAED,QAAe,CAAC;AAC/E;AAEA,OAAO,SAASG,4BAA4BA,CAC1CH,QAAgE,EAChE;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CACpC,qBAAqB,EACrBD,QACF,CAAC;AACH;AAEA,OAAO,SAASI,2BAA2BA,CACzCJ,QAA6C,EAC7C;EACA,OAAOvD,mBAAmB,CAACwD,WAAW,CAAC,oBAAoB,EAAED,QAAe,CAAC;AAC/E;;AAEA;;AAEA,MAAMK,GAAG,GAAG,IAAI3D,UAAU,CAAC,CAAC;AAC5B,eAAe2D,GAAG","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1selfworld/adchain-sdk-react-native",
3
- "version": "1.0.11",
3
+ "version": "1.0.12",
4
4
  "description": "AdChain SDK for React Native with Expo support",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -1,14 +1,18 @@
1
- const { withSettingsGradle } = require('@expo/config-plugins');
1
+ const {
2
+ withSettingsGradle,
3
+ withProjectBuildGradle,
4
+ } = require('@expo/config-plugins');
2
5
 
3
6
  /**
4
- * v4.1: settings.gradle에 JitPack repository만 추가
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
- return withSettingsGradle(config, (config) => {
11
- let settingsGradle = config.modResults.contents;
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
- config.modResults.contents = settingsGradle;
52
- return config;
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/expo-sdk", {\n' +
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' +