3. إعداد المشروع
3.1 معرّف تطبيق AdMob
إذا كانت AdMob/GAM إحدى شبكات الإعلانات المفعّلة لديك، فأضف معرّف تطبيق AdMob الخاص بك إلى Info.plist (هذا المعرّف خاص بكل تطبيق، لذا لا يمكن تضمينه داخل ملفات xcframework):
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-XXXXXXXXXXXXXXXX~YYYYYYYYYY</string>3.2 SKAdNetworkItems
تحتاج شبكات الوساطة الإعلانية وإسناد عمليات التثبيت التي يعتمد عليها AKS (AppLovin وIronSource وشركاؤهما في تقديم عروض الأسعار) إلى إدخالات SKAdNetworkIdentifier لإسناد عمليات التثبيت بشكل صحيح في إطار ATT. يتضمن التطبيق المرجعي نحو 48 إدخالًا تغطي شركاء الوساطة الإعلانية لدى AppLovin وIronSource وMeta وغيرها. احصل على القائمة الحالية من لوحات تحكم شبكات الإعلانات لديك (تنشر كل من AppLovin وIronSource وAdMob قائمة خاصة بها) بدلًا من نسخ قائمة قديمة، إذ تضيف هذه الشبكات معرّفات جديدة بمرور الوقت.
3.3 شفافية تتبّع التطبيقات (ATT) — خطوة عليك استكمالها بنفسك
تنبيه: لا يتضمن التكامل المرجعي NSUserTrackingUsageDescription ولا أي استدعاء لـ ATTrackingManager.requestTrackingAuthorization(). لا يعرض AKS طلب إذن ATT نيابةً عنك على iOS. إذا أردت إتاحة معرّف الإعلانات IDFA للوساطة الإعلانية عبر AdMob/AppLovin/IronSource ولإسناد عمليات التثبيت عبر AppsFlyer/Adjust، فعليك إضافة كليهما بنفسك:
<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
أضف ملف GoogleService-Info.plist الخاص بـ Firebase إلى هدف تطبيقك بالطريقة المعتادة (اسحبه إلى مجلد الشيفرة المصدرية، وتأكد من تضمينه ضمن الهدف). لا توجد أي متطلبات خاصة بـ 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 أو أحدث، وتذكّر أن post_install في Podfile (§1.2) يفرض أيضًا الإصدار 15.0 على كل هدف pod، لذا فإن تحديد إصدار أقل على مستوى التطبيق سيؤدي على أي حال إلى مشكلات في الربط مع مكتبات pods.