3. 프로젝트 설정
3.1 AdMob 앱 ID
활성화한 광고 네트워크에 AdMob/GAM이 포함되어 있다면 Info.plist에 해당 앱의 AdMob 앱 ID를 추가하세요. 이 ID는 앱별로 다르므로 xcframework에 포함할 수 없습니다.
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-XXXXXXXXXXXXXXXX~YYYYYYYYYY</string>3.2 SKAdNetworkItems
AKS에서 사용하는 미디에이션/어트리뷰션 네트워크(AppLovin, IronSource 및 이들과 연동된 입찰 파트너)가 ATT 환경에서 앱 설치를 올바르게 어트리뷰션하려면 SKAdNetworkIdentifier 항목이 필요합니다. 참조 앱에는 AppLovin/IronSource/Meta 등의 미디에이션 파트너를 포괄하는 약 48개의 항목이 포함되어 있습니다. 광고 네트워크는 계속 새 ID를 추가하므로, 오래된 목록을 복사하지 말고 광고 네트워크 대시보드에서 최신 목록을 가져오세요. AppLovin, IronSource, AdMob은 각각 이 목록을 제공합니다.
3.3 App Tracking Transparency (ATT) — 직접 추가해야 하는 설정
주의: 참조 연동에는 NSUserTrackingUsageDescription도, ATTrackingManager.requestTrackingAuthorization() 호출도 없습니다. AKS는 iOS에서 ATT 권한 요청을 대신 표시하지 않습니다. AdMob/AppLovin/IronSource 미디에이션과 AppsFlyer/Adjust 어트리뷰션에서 IDFA를 사용할 수 있도록 하려면 다음 두 가지를 직접 추가해야 합니다.
<key>NSUserTrackingUsageDescription</key>
<string>Your data will be used to deliver personalized ads.</string>import AppTrackingTransparency
ATTrackingManager.requestTrackingAuthorization { status in
// call this before initializing ads — see §4.4
}사용 목적 설명 문자열 없이 requestTrackingAuthorization을 호출하면 런타임에 앱이 비정상 종료됩니다. 따라서 Info.plist 키 없이 호출 코드만 추가하지 마세요. SDK를 연동했다는 이유만으로 둘 중 어느 하나라도 이미 처리되어 있다고 가정해서는 안 됩니다.
3.4 GoogleService-Info.plist
일반적인 방법으로 Firebase의 GoogleService-Info.plist를 앱 타깃에 추가하세요. 소스 폴더로 드래그한 뒤 타깃 멤버십에 앱 타깃이 포함되어 있는지 확인하면 됩니다. AKS 전용 설정은 없으며, Firebase의 표준 설정 절차를 그대로 따르면 됩니다.
3.5 배포 타깃
AppsKit.xcframework/AKSKit.xcframework는 최소 iOS 15.0을 대상으로 Swift 5.9(Xcode 15.2+)로 빌드되며, 모듈 안정성을 위해 BUILD_LIBRARY_FOR_DISTRIBUTION: YES가 설정되어 있습니다. 앱 타깃의 IPHONEOS_DEPLOYMENT_TARGET을 15.0 이상으로 설정하세요. Podfile의 post_install(§1.2)도 모든 pod 타깃을 15.0으로 강제 설정하므로, 앱 타깃을 그보다 낮게 설정하면 어차피 pod와 정상적으로 링크되지 않습니다.