@1selfworld/adchain-sdk-react-native 1.0.6 → 1.0.8
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/lib/module/index.js +19 -14
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +24 -19
package/lib/module/index.js
CHANGED
|
@@ -14,18 +14,11 @@ const hasExpoNative = (() => {
|
|
|
14
14
|
}
|
|
15
15
|
})();
|
|
16
16
|
|
|
17
|
-
// ===== Expo Constants
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
Constants = require('expo-constants').default;
|
|
24
|
-
} catch (e) {
|
|
25
|
-
// Expo 네이티브 모듈은 있지만 JS 모듈 로드 실패
|
|
26
|
-
console.warn('[AdChain SDK] Expo environment detected, but expo-constants JS module failed to load:', e);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
17
|
+
// ===== Expo Constants 동적 로딩 =====
|
|
18
|
+
// Metro 번들러의 정적 분석을 우회하기 위해 top-level require()를 제거하고
|
|
19
|
+
// autoInitialize() 함수 내부에서 동적 import()를 사용합니다.
|
|
20
|
+
// 이 방법으로 Expo 환경이 아닌 순수 React Native에서는 expo-constants가
|
|
21
|
+
// 번들에 포함되지 않으며, 런타임 에러도 발생하지 않습니다.
|
|
29
22
|
|
|
30
23
|
// Export Offerwall View Component
|
|
31
24
|
export { AdchainOfferwallView } from "./AdchainOfferwallView.js";
|
|
@@ -60,8 +53,20 @@ class AdchainSDK {
|
|
|
60
53
|
// Expo용 자동 초기화 (app.json 설정 사용) - 플랫폼별 credentials 지원
|
|
61
54
|
async autoInitialize() {
|
|
62
55
|
try {
|
|
63
|
-
|
|
64
|
-
|
|
56
|
+
// Expo 네이티브 모듈 확인
|
|
57
|
+
if (!hasExpoNative) {
|
|
58
|
+
throw new Error('AdChain: autoInitialize() is only available in Expo projects.\n\n' + `Environment check:\n` + `- Platform: ${Platform.OS}\n` + `- Expo native module: ✗ Not found\n\n` + 'For pure React Native projects, please use initialize() method with your credentials.');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// 동적 import로 expo-constants 로드 (Metro 정적 분석 완전 우회)
|
|
62
|
+
// 문자열을 동적으로 생성하여 Metro가 모듈 이름을 감지하지 못하게 함
|
|
63
|
+
let Constants = null;
|
|
64
|
+
try {
|
|
65
|
+
const moduleName = ['expo', 'constants'].join('-');
|
|
66
|
+
const ExpoConstantsModule = await import(moduleName);
|
|
67
|
+
Constants = ExpoConstantsModule.default;
|
|
68
|
+
} catch (e) {
|
|
69
|
+
throw new Error('AdChain: Failed to load expo-constants module.\n\n' + `Error: ${e}\n\n` + 'Please ensure expo-constants is installed:\n' + 'npm install expo-constants');
|
|
65
70
|
}
|
|
66
71
|
const expoConfig = Constants.expoConfig;
|
|
67
72
|
if (!expoConfig) {
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","hasExpoNative","ExpoConstants","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","hasExpoNative","ExpoConstants","AdchainOfferwallView","LINKING_ERROR","select","ios","default","AdchainSdk","Proxy","get","Error","adchainEventEmitter","AdchainSDK","initialize","config","options","environment","timeout","appKey","appSecret","autoInitialize","OS","Constants","moduleName","join","ExpoConstantsModule","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":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -12,22 +12,11 @@ const hasExpoNative = (() => {
|
|
|
12
12
|
}
|
|
13
13
|
})();
|
|
14
14
|
|
|
15
|
-
// ===== Expo Constants
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (hasExpoNative) {
|
|
21
|
-
try {
|
|
22
|
-
Constants = require('expo-constants').default;
|
|
23
|
-
} catch (e) {
|
|
24
|
-
// Expo 네이티브 모듈은 있지만 JS 모듈 로드 실패
|
|
25
|
-
console.warn(
|
|
26
|
-
'[AdChain SDK] Expo environment detected, but expo-constants JS module failed to load:',
|
|
27
|
-
e
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
15
|
+
// ===== Expo Constants 동적 로딩 =====
|
|
16
|
+
// Metro 번들러의 정적 분석을 우회하기 위해 top-level require()를 제거하고
|
|
17
|
+
// autoInitialize() 함수 내부에서 동적 import()를 사용합니다.
|
|
18
|
+
// 이 방법으로 Expo 환경이 아닌 순수 React Native에서는 expo-constants가
|
|
19
|
+
// 번들에 포함되지 않으며, 런타임 에러도 발생하지 않습니다.
|
|
31
20
|
|
|
32
21
|
// Export Offerwall View Component
|
|
33
22
|
export { AdchainOfferwallView } from './AdchainOfferwallView';
|
|
@@ -128,17 +117,33 @@ class AdchainSDK {
|
|
|
128
117
|
// Expo용 자동 초기화 (app.json 설정 사용) - 플랫폼별 credentials 지원
|
|
129
118
|
async autoInitialize(): Promise<SuccessResponse> {
|
|
130
119
|
try {
|
|
131
|
-
|
|
120
|
+
// Expo 네이티브 모듈 확인
|
|
121
|
+
if (!hasExpoNative) {
|
|
132
122
|
throw new Error(
|
|
133
123
|
'AdChain: autoInitialize() is only available in Expo projects.\n\n' +
|
|
134
124
|
`Environment check:\n` +
|
|
135
125
|
`- Platform: ${Platform.OS}\n` +
|
|
136
|
-
`- Expo native module:
|
|
137
|
-
`- expo-constants loaded: ${Constants ? '✓ Yes' : '✗ No'}\n\n` +
|
|
126
|
+
`- Expo native module: ✗ Not found\n\n` +
|
|
138
127
|
'For pure React Native projects, please use initialize() method with your credentials.'
|
|
139
128
|
);
|
|
140
129
|
}
|
|
141
130
|
|
|
131
|
+
// 동적 import로 expo-constants 로드 (Metro 정적 분석 완전 우회)
|
|
132
|
+
// 문자열을 동적으로 생성하여 Metro가 모듈 이름을 감지하지 못하게 함
|
|
133
|
+
let Constants: any = null;
|
|
134
|
+
try {
|
|
135
|
+
const moduleName = ['expo', 'constants'].join('-');
|
|
136
|
+
const ExpoConstantsModule = await import(moduleName as any);
|
|
137
|
+
Constants = ExpoConstantsModule.default;
|
|
138
|
+
} catch (e) {
|
|
139
|
+
throw new Error(
|
|
140
|
+
'AdChain: Failed to load expo-constants module.\n\n' +
|
|
141
|
+
`Error: ${e}\n\n` +
|
|
142
|
+
'Please ensure expo-constants is installed:\n' +
|
|
143
|
+
'npm install expo-constants'
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
|
|
142
147
|
const expoConfig = Constants.expoConfig;
|
|
143
148
|
|
|
144
149
|
if (!expoConfig) {
|