문제 해결
SDK 사용 중 자주 발생하는 문제들과 해결 방법입니다.
초기화 문제
"SDK initialization failed" 에러가 나요
가능한 원인:
appKey나 appSecret이 틀림
초기화할 때 넣은 값이 맞는지 확인하세요. 공백이 들어가거나 복사할 때 잘못됐을 수 있습니다.
인터넷 연결 안 됨
SDK 초기화할 때 애드체인 서버에 연결해서 설정을 받아옵니다. 인터넷 연결을 확인하세요.
애드체인 서버 점검 중
드물지만 애드체인 서버 점검 중일 수 있습니다. 잠시 후 다시 시도하거나 [email protected]로 문의하세요.
해결 방법:
// Android
AdchainSdk.initialize(
application = this,
config = config,
listener = object : AdchainSdkInitListener {
override fun onSuccess() {
Log.d("AdChain", "초기화 성공")
}
override fun onFailure(error: AdchainError) {
// 에러 코드와 메시지를 확인하세요
Log.e("AdChain", "에러 코드: ${error.code}")
Log.e("AdChain", "메시지: ${error.message}")
}
}
)에러 메시지를 복사해서 [email protected]로 보내주시면 더 빠르게 도와드릴 수 있습니다.
초기화는 됐는데 isInitialized()가 false예요
초기화는 비동기로 작동합니다. onSuccess() 콜백이 온 다음에 확인해야 합니다:
AdchainSdk.initialize(..., listener = object : AdchainSdkInitListener {
override fun onSuccess() {
// 여기서 확인하면 true
if (AdchainSdk.isInitialized()) {
// 이제 다른 기능 사용 가능
}
}
...
})로그인 문제
로그인이 계속 실패해요
확인사항:
SDK 초기화가 완료됐나요?
인터넷 연결이 되나요?
userId에 특수문자가 들어갔나요?
userId는 일반적인 문자, 숫자, 하이픈, 언더스코어만 쓰는 게 안전합니다. 이모지 같은 건 피하세요.
로그인은 됐는데 오퍼월이 안 열려요
로그인 콜백을 받은 다음에 오퍼월을 열어야 합니다:
AdchainSdk.login(user, object : AdchainSdkLoginListener {
override fun onSuccess() {
// 로그인 성공 - 여기서 오퍼월 열기
AdchainSdk.openOfferwall(...)
}
...
})오퍼월 문제
오퍼월이 흰 화면만 나와요
Android:
인터넷 권한 확인
AndroidManifest.xml에 있나요?<uses-permission android:name="android.permission.INTERNET" />Cleartext HTTP 설정
일부 광고가 HTTP를 씁니다.
AndroidManifest.xml에:<application android:usesCleartextTraffic="true" ...>
iOS:
App Transport Security 확인
Info.plist에:<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>네트워크 권한
시뮬레이터가 아닌 실제 기기에서 테스트해보세요.
오퍼월이 너무 느려요
첫 로딩은 WebView 초기화 + 콘텐츠 로드 때문에 2-3초 걸립니다. 정상입니다.
빠르게 하려면:
사용자가 버튼을 누르기 전에 미리 로딩
네트워크 상태 확인 (Wi-Fi vs 모바일 데이터)
이미지나 리소스가 많은 화면이면 시간이 더 걸릴 수 있음
"Placement not found" 에러가 나요
placementId가 애드체인 서버에 등록되지 않았을 수 있습니다. 테스트 중이라면 아무 값이나 써도 됩니다. 프로덕션에서 특정 placement를 쓰려면 [email protected]로 문의하세요.
빌드 문제
Android 빌드 에러
"Duplicate class" 에러:
./gradlew clean
./gradlew assembleDebug안 되면:
// build.gradle
android {
packagingOptions {
exclude 'META-INF/*.kotlin_module'
}
}"Unable to resolve dependency" 에러:
settings.gradle.kts에 JitPack 저장소가 있나요?
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") } // 이거
}"Could not find io.adjoe:adjoe-sdk-android" 에러:
이 에러는 Adjoe SDK를 찾을 수 없다는 뜻입니다. AdChain SDK가 내부적으로 Adjoe SDK를 사용하기 때문에 Adjoe Maven 저장소를 추가해야 합니다.
settings.gradle.kts 또는 build.gradle에 다음을 추가하세요:
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") }
maven { url = uri("https://releases.adjoe.io/maven") } // 이거 추가
}또는 build.gradle (allprojects):
allprojects {
repositories {
maven { url 'https://releases.adjoe.io/maven' } // 이거 추가
google()
mavenCentral()
maven { url 'https://www.jitpack.io' }
}
}저장소를 추가한 후 Gradle Sync를 다시 실행하세요.
React Native에서 Adjoe SDK 에러:
React Native 프로젝트도 동일한 문제가 발생할 수 있습니다. android/build.gradle 파일에 Adjoe 저장소를 추가하세요:
allprojects {
repositories {
maven { url 'https://releases.adjoe.io/maven' } // 추가
// 기존 저장소들...
}
}자세한 내용은 Android 시작하기 또는 React Native 시작하기를 참고하세요.
iOS 빌드 에러
CocoaPods 에러:
cd ios
pod deintegrate
pod install
cd .."Library not found" 에러:
Xcode에서 .xcworkspace 파일을 열었나요? (.xcodeproj가 아니라)
"Undefined symbol" 에러:
Xcode에서 Clean Build Folder (Cmd+Shift+K) 후 다시 빌드.
React Native 빌드 에러
Metro bundler 에러:
npm start -- --reset-cacheAndroid 빌드 에러:
cd android
./gradlew clean
cd ..
npx react-native run-androidiOS 빌드 에러:
cd ios
pod install
cd ..
npx react-native run-ios이벤트 추적 문제
trackEvent()를 호출했는데 대시보드에 안 보여요
이벤트는 즉시 전송되지 않고 배치로 모아서 보냅니다 (기본: 10개 또는 30초마다).
즉시 보내려면:
AdchainSdk.trackEvent("my_event", mapOf("key" to "value"))
AdchainSdk.flushEvents() // 즉시 전송그리고 대시보드에 반영되려면 몇 분 걸릴 수 있습니다.
ProGuard 문제
릴리스 빌드에서 크래시가 나면 ProGuard 규칙을 추가하세요:
# AdChain SDK
-keep class com.adchain.sdk.** { *; }
-keepclassmembers class com.adchain.sdk.** { *; }
# Retrofit & OkHttp
-keepattributes Signature
-keepattributes *Annotation*
-keep class retrofit2.** { *; }
-keep class okhttp3.** { *; }
# Moshi
-keep class com.squareup.moshi.** { *; }
-keepclassmembers class ** {
@com.squareup.moshi.* <methods>;
}로그 확인 방법
Android
adb logcat | grep AdChain또는 Android Studio의 Logcat에서 "AdChain" 필터.
iOS
Xcode Console에서 "AdChain" 검색.
또는 터미널에서:
log stream --predicate 'subsystem contains "AdChain"' --level debugReact Native
npx react-native log-android # Android
npx react-native log-ios # iOS그래도 안 되면
위 방법으로도 안 되면:
로그 복사: 전체 에러 로그를 복사하세요
환경 정보:
SDK 버전
OS 버전 (Android 12, iOS 16 등)
기기 모델
재현 방법
문의: [email protected]로 위 정보와 함께 보내주세요
보통 1-2일 내로 답변 드립니다.
Last updated