3. Cấu hình dự án
3.1 AdMob App ID
Nếu AdMob/GAM là một trong các mạng quảng cáo bạn đã bật, hãy thêm AdMob App ID của bạn vào Info.plist (ID này dành riêng cho từng ứng dụng — không thể đóng gói sẵn trong các xcframework):
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-XXXXXXXXXXXXXXXX~YYYYYYYYYY</string>3.2 SKAdNetworkItems
Các mạng mediation/đo lường phân bổ mà AKS sử dụng (AppLovin, IronSource và các đối tác đấu giá của họ) cần các mục SKAdNetworkIdentifier để phân bổ lượt cài đặt chính xác trong cơ chế ATT. Ứng dụng mẫu có sẵn khoảng 48 mục cho các đối tác mediation của AppLovin/IronSource/Meta/v.v. Hãy lấy danh sách mới nhất từ trang quản trị của các mạng quảng cáo (AppLovin, IronSource và AdMob đều công bố danh sách riêng) thay vì sao chép danh sách cũ — các mạng này liên tục bổ sung ID mới.
3.3 App Tracking Transparency (ATT) — phần bạn cần tự bổ sung
Lưu ý: bản tích hợp mẫu không có NSUserTrackingUsageDescription cũng như bất kỳ lệnh gọi ATTrackingManager.requestTrackingAuthorization() nào. AKS không tự hiển thị lời nhắc xin quyền ATT thay bạn trên iOS. Nếu muốn các mạng mediation AdMob/AppLovin/IronSource và các dịch vụ đo lường phân bổ AppsFlyer/Adjust có thể sử dụng IDFA, bạn cần tự thêm cả hai:
<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
}Nếu thiếu chuỗi mô tả mục đích sử dụng, việc gọi requestTrackingAuthorization sẽ khiến ứng dụng bị crash khi chạy — vì vậy, đừng thêm lệnh gọi này mà không có khóa tương ứng trong Info.plist, và đừng cho rằng việc tích hợp SDK đã xử lý sẵn một trong hai phần đó.
3.4 GoogleService-Info.plist
Thêm GoogleService-Info.plist của Firebase vào target ứng dụng theo cách thông thường (kéo tệp vào thư mục mã nguồn, đảm bảo tệp thuộc target ứng dụng). Không có yêu cầu riêng nào từ AKS ở bước này — chỉ cần áp dụng quy trình thiết lập tiêu chuẩn của Firebase.
3.5 Phiên bản iOS tối thiểu (Deployment target)
AppsKit.xcframework/AKSKit.xcframework được build cho iOS 15.0 trở lên, bằng Swift 5.9 (Xcode 15.2+), với BUILD_LIBRARY_FOR_DISTRIBUTION: YES để đảm bảo tính ổn định của mô-đun. Đặt IPHONEOS_DEPLOYMENT_TARGET của target ứng dụng thành 15.0 hoặc cao hơn — đồng thời lưu ý rằng post_install trong Podfile (§1.2) cũng buộc mọi target pod dùng phiên bản 15.0, nên việc đặt phiên bản tối thiểu thấp hơn ở cấp ứng dụng cũng sẽ gây lỗi liên kết với các pod.