import SwiftUI
import AdChainSDK
@main
struct MyApp: App {
init() {
let config = AdchainSdkConfig.Builder(
appKey: "YOUR_APP_KEY",
appSecret: "YOUR_APP_SECRET"
)
.setEnvironment(.production)
.build()
AdchainSdk.shared.initialize(
application: UIApplication.shared,
sdkConfig: config
)
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
if AdchainSdk.shared.isInitialized() {
// 초기화 완료 - 로그인 및 다른 기능 사용 가능
} else {
// 아직 초기화 안 됨 - 서버 검증 진행 중
}
import AppTrackingTransparency
func requestTrackingPermission() {
// iOS 14.5 이상에서만
if #available(iOS 14.5, *) {
ATTrackingManager.requestTrackingAuthorization { status in
switch status {
case .authorized:
print("추적 허용됨")
case .denied:
print("추적 거부됨")
case .notDetermined:
print("아직 결정 안 함")
case .restricted:
print("추적 제한됨")
@unknown default:
break
}
}
}
}
import AdChainSDK
// 사용자 정보 생성
let user = AdchainSdkUser(
userId: "user123", // 앱의 사용자 ID (필수)
gender: .male, // 성별 (선택)
birthYear: 1990 // 출생연도 (선택)
)
// 로그인
AdchainSdk.shared.login(
adchainSdkUser: user,
listener: LoginListener()
)
// 로그인 리스너
class LoginListener: AdchainSdkLoginListener {
func onSuccess() {
print("로그인 성공")
// 이제 오퍼월이나 다른 기능 사용 가능
}
func onFailure(_ error: AdchainLoginError) {
print("로그인 실패: \(error.description)")
}
}
// 로그인 여부 확인
if AdchainSdk.shared.isLoggedIn {
// 로그인 상태 - 오퍼월 및 다른 기능 사용 가능
} else {
// 미로그인 상태 - 로그인 필요
}