التوثيق · التكامل مع iOS

1. التبعيات (Podfile)

1.1 لماذا لا تزال بحاجة إلى Podfile

يُربط AKSKit.xcframework/AppsKit.xcframework مباشرةً كإطارات عمل ثنائية (§2)، وليس كحزم pods — لكن وحدة Swift المترجمة في AppsKit.xcframework تشير إلى رموز من عدة حزم SDK تابعة لجهات خارجية (Firebase وGoogle Mobile Ads وIronSource وAdjust وAppsFlyer وAppLovin). يجب أن تكون هذه الحزم موجودة في شجرة التبعيات عبر CocoaPods، وإلا فستفشل مرحلة الربط أثناء البناء، حتى لو لم تستدعِ معظمها مباشرةً.

1.2 حزم pods المطلوبة (مطلوبة دائمًا)

ruby
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. تعامل معها كنقطة انطلاق ثبت أنها تعمل، لا كإصدارات ثابتة إلزامية — حدّثها بحسب احتياجات تطبيقك، لكن أبقِ IPHONEOS_DEPLOYMENT_TARGET عند 15.0 أو أعلى ليتوافق مع الإصدار المستهدف عند بناء AppsKit.xcframework/AKSKit.xcframework.

السطر DEBUG_INFORMATION_FORMAT = 'dwarf-with-dsym' ضمن post_install ليس مجرد تحسين شكلي اختياري — فبدونه، لا تُنتج بعض حزم pods هذه (ولا سيما AppLovinSDK) ملفات dSYM، مما يعطّل تحويل عناوين الذاكرة في تقارير الأعطال إلى أسماء رموز، وقد يؤدي إلى فشل التحقق من ملفات dSYM في App Store Connect عند الرفع.

1.3 حزم SDK لشركاء قياس أداء التطبيقات (MMP)

Solar Engine ليس حزمة pod تحتاج إلى إضافتها — فهو مضمّن بالفعل في النسخة المترجمة من AKSKit.xcframework نفسه، لذا لن تجده في Podfile (ولا تحتاج إلى إضافته). أما AppsFlyer وAdjust، فهما حزمتا pods يجب إضافتهما من جهة التطبيق الذي يستخدم SDK (§1.2 أعلاه)، لأن كود Swift في AppsKit.xcframework يستدعي دوال SDK الفعلية الخاصة بهما مباشرةً (initializeAppsFlyer/initializeAdjust في IOSBridgeImp.swift).

1.4 حزم SDK لشبكات الإعلانات / الوساطة الإعلانية

يضيف ملف Podfile المرجعي Google-Mobile-Ads-SDK وIronSourceSDK وAppLovinSDK فقط — ولا يتضمن حزم pods منفصلة «لمحوّلات وساطة AdMob». إذا كانت إعدادات بوابة AKS لديك تفعّل الوساطة عبر AdMob بنظام عروض الأسعار أو الشلال لشبكات غير المذكورة، فتحقّق مما إذا كانت الشبكة تحتاج إلى محوّل CocoaPods خاص بها (مثل حزمة pod من نمط GoogleMobileAdsMediation*) — لا يمكن لهذا الدليل توثيق سوى ما تأكّد عمله في التطبيق المرجعي.