1. 의존성 (Podfile)
1.1 Podfile이 여전히 필요한 이유
AKSKit.xcframework/AppsKit.xcframework는 pod가 아닌 바이너리 프레임워크로 직접 링크됩니다(§2). 하지만 AppsKit.xcframework의 컴파일된 Swift 모듈은 여러 서드파티 SDK(Firebase, Google Mobile Ads, IronSource, Adjust, AppsFlyer, AppLovin)의 심볼을 참조합니다. 대부분을 직접 호출하지 않더라도, 이러한 SDK가 CocoaPods를 통해 의존성 그래프에 포함되어 있어야 합니다. 그렇지 않으면 빌드 시 링크에 실패합니다.
1.2 필수 pod (항상 필요)
source 'https://cdn.cocoapods.org'
platform :ios, '15.0'
target 'YourApp' do
use_frameworks!
# Remote Config drives almost all AKS behavior; Analytics/Crashlytics back AKS events and crash reporting
pod 'Firebase/Analytics', '~> 12.15.0'
pod 'Firebase/Crashlytics', '~> 12.15.0'
pod 'Firebase/RemoteConfig', '~> 12.15.0'
pod 'Google-Mobile-Ads-SDK'
# Required by AppsKit.xcframework's compiled swiftinterface — these are transitive
# dependencies of the AKS facade itself, not direct calls you make.
pod 'IronSourceSDK', '~> 9.1.0.0'
pod 'Adjust', '~> 5.4.6'
pod 'AppsFlyerFramework'
pod 'AppsFlyer-AdRevenue'
pod 'AppLovinSDK'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf-with-dsym'
end
end
end위 버전은 정상 동작이 확인된 참조 연동 프로젝트에서 현재 의존성 해석 결과로 사용되는 버전입니다(Podfile.lock). 구체적으로는 Firebase/* 12.15.0, 최신 버전을 사용하도록 버전을 고정하지 않은 Google-Mobile-Ads-SDK(전이 의존성으로 GoogleUserMessagingPlatform을 가져옴), IronSourceSDK 9.1.0.0, Adjust 5.4.6, AppsFlyerFramework/AppsFlyer-AdRevenue 6.14.3, AppLovinSDK 13.5.0입니다. 반드시 고정해야 하는 버전이 아니라 정상 동작이 검증된 기준으로 삼으세요. 앱의 요구사항에 따라 버전을 올려도 되지만, AppsKit.xcframework/AKSKit.xcframework의 빌드 기준에 맞게 IPHONEOS_DEPLOYMENT_TARGET은 15.0 이상으로 유지해야 합니다.
post_install의DEBUG_INFORMATION_FORMAT = 'dwarf-with-dsym'줄은 단순히 형식을 맞추기 위한 선택 사항이 아닙니다. 이 설정이 없으면 일부 pod(특히 AppLovinSDK)가 dSYM을 생성하지 않아 크래시 심볼리케이션이 제대로 작동하지 않으며, 업로드 시 App Store Connect의 dSYM 검증에 실패할 수 있습니다.
1.3 MMP SDK
Solar Engine은 별도로 추가하는 pod가 아닙니다. 이미 AKSKit.xcframework 자체에 컴파일되어 포함되어 있으므로 Podfile에 표시되지 않으며, 추가할 필요도 없습니다. 반면 AppsFlyer와 Adjust는 SDK를 사용하는 앱 측에서 추가해야 하는 pod입니다(위 §1.2). AppsKit.xcframework의 Swift 코드가 해당 SDK의 실제 메서드를 직접 호출하기 때문입니다(IOSBridgeImp.swift의 initializeAppsFlyer/initializeAdjust).
1.4 광고 네트워크 / 미디에이션 SDK
참조 Podfile에는 Google-Mobile-Ads-SDK, IronSourceSDK, AppLovinSDK만 추가되어 있으며, 별도의 "AdMob 미디에이션 어댑터" pod는 없습니다. AKS 포털 설정에서 여기에 나열되지 않은 네트워크에 대해 AdMob을 통한 입찰/워터폴 미디에이션을 활성화했다면, 해당 네트워크에 별도의 CocoaPods 어댑터(예: GoogleMobileAdsMediation* pod)가 필요한지 확인하세요. 이 가이드에서는 참조 앱에서 정상 동작이 확인된 구성만 다룹니다.