| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- //
- // AppDelegate.swift
- // VenusKitto
- //
- // Created by Neoa on 2025/8/21.
- //
- import UIKit
- import AnyThinkSDK
- import AppTrackingTransparency
- import AdSupport
- @main
- class AppDelegate: UIResponder, UIApplicationDelegate {
- func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
- // Override point for customization after application launch.
-
-
- DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
- self.requestTrackingPermission()
- }
- self.initAnythinkSDK()
- return true
- }
- // MARK: UISceneSession Lifecycle
- func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
- // Called when a new scene session is being created.
- // Use this method to select a configuration to create the new scene with.
- return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
- }
- func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
- // Called when the user discards a scene session.
- // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
- // Use this method to release any resources that were specific to the discarded scenes, as they will not return.
- }
- func initAnythinkSDK() {
- ATAPI.setLogEnabled(false)
- ATAPI.integrationChecking()
- // 初始化 AnyThink
- do {
- let ok: () = try ATAPI.sharedInstance().start(withAppID: kTakuAppID, appKey: kTakuAppKey)
- print("AnyThink SDK start success: \(ok)")
- } catch {
- print("AnyThink SDK start failed:", error)
- }
- }
- func requestTrackingPermission() {
- if #available(iOS 14, *) {
- ATTrackingManager.requestTrackingAuthorization { status in
- switch status {
- case .authorized:
- print("Authorized to track.")
- // Access IDFA (if needed)
- case .denied:
- print("Denied tracking permission.")
- case .notDetermined:
- print("Tracking permission not determined.")
- case .restricted:
- print("Tracking permission restricted.")
- @unknown default:
- print("Unknown tracking status.")
- }
- }
- } else {
- // Handle older iOS versions if necessary
- print("App Tracking Transparency not available on this iOS version.")
- }
- }
- }
|