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

2. إعداد مشروع Xcode — إضافة ملفات xcframework محليًا

لا توجد هنا عملية دمج لملفات البيان أو عنوان URL لمستودع — بل ستربط إطارَي عمل ثنائيين بمشروع Xcode يدويًا (أو عبر سكربت إعداد، إذا كان فريقك يستخدم واحدًا).

2.1 مكان وضع إطارَي العمل

ضع AKSKit.xcframework وAppsKit.xcframework مباشرةً في المجلد نفسه الذي يحتوي على .xcodeproj — أي في المستوى نفسه مع Podfile ومجلد الشيفرة المصدرية لتطبيقك، وليس داخل مجلد الشيفرة المصدرية أو داخل Pods/. هذا مهم لأن Xcode يحلّ مرجع إطار العمل باستخدام مسار نسبي مباشر (دون الحاجة إلى تخصيص FRAMEWORK_SEARCH_PATHS) — وإذا نقلتهما، فسيصبح المرجع في ملف المشروع غير صالح.

plaintext
YourApp/                          <- CocoaPods project root (Podfile lives here)
├── Podfile
├── AKSKit.xcframework/            <- sibling of the .xcodeproj
├── AppsKit.xcframework/           <- sibling of the .xcodeproj
├── YourApp.xcodeproj/
├── YourApp.xcworkspace/           <- open THIS, not the .xcodeproj, once Pods are installed
└── YourApp/                       <- your app target's source folder
    ├── AppDelegate.swift
    └── ...

2.2 إضافة إطارَي العمل إلى هدف البناء

في Xcode، حدّد هدف بناء تطبيقك → General (عام) → Frameworks, Libraries, and Embedded Content (أطر العمل والمكتبات والمحتوى المضمّن) → أضف ملفَي .xcframework، واضبط كليهما على Embed & Sign (تضمين وتوقيع). تحديدًا، يجب أن ينتج عن ذلك ما يلي:

  • مرجع PBXFileReference لكل إطار عمل، مع sourceTree = "<group>" وقيمة path مباشرة (دون بادئة مجلد)
  • إدراج كليهما ضمن Link Binary With Libraries (ربط الملف الثنائي بالمكتبات)، أي مرحلة PBXFrameworksBuildPhase
  • إدراج كليهما ضمن مرحلة بناء لنسخ الملفات باسم Embed Frameworks (تضمين أطر العمل)، من النوع PBXCopyFilesBuildPhase مع dstSubfolderSpec = 10، وبالسمتين CodeSignOnCopy + RemoveHeadersOnCopy — وهذا بالضبط ما ينتج عن اختيار "Embed & Sign" في واجهة Xcode

تأكّد أيضًا من أن LD_RUNPATH_SEARCH_PATHS يتضمّن @executable_path/Frameworks (يضيفه Xcode تلقائيًا عند تضمين إطار عمل عبر الواجهة؛ وهو ما يتيح تحميل أطر العمل المضمّنة والموقّعة أثناء التشغيل).

إذا كنت تستخدم سكربت لتنفيذ ذلك بدلًا من واجهة Xcode (مثلًا ضمن خطوة إعداد للتكامل المستمر CI)، فالعناصر الثلاثة المذكورة أعلاه — مرجع الملف، ومرحلة الربط، ومرحلة التضمين — هي بالضبط ما تحتاج إلى إضافته إلى project.pbxproj.

2.3 فتح مساحة العمل، لا المشروع

بعد تنفيذ pod install، افتح YourApp.xcworkspace. فهي التي تربط هدف بناء تطبيقك بمشروع Pods.xcodeproj الذي ينشئه CocoaPods؛ أما فتح .xcodeproj مباشرةً فسيؤدي إلى بناء التطبيق دون ربط الاعتماديات المحدّدة في Podfile بشكل صحيح.