Apple Apps وBazel

تحتوي هذه الصفحة على موارد تساعدك في استخدام Bazel لإنشاء مشاريع على نظامي التشغيل macOS وiOS. فهي ترتبط ببرنامج تعليمي وإنشاء قواعد ومعلومات أخرى مرتبطة باستخدام Bazel لإنشاء هذه المنصات واختبارها.

العمل مع بازيل

ستساعدك الموارد التالية في العمل مع Bazel على مشاريع macOS وiOS:

النقل إلى Bazel

في حال إنشاء مشاريع macOS وiOS حاليًا باستخدام Xcode، عليك اتّباع الخطوات الواردة في دليل نقل البيانات لبدء إنشائها باستخدام Bazel:

تطبيقات Apple والقواعد الجديدة

ملاحظة: إنشاء قواعد جديدة للسيناريوهات المتقدمة للإصدار والاختبار. لست بحاجة إليها عند بدء استخدام Bazel.

ستساعدك الوحدات التالية وأجزاء الضبط ومقدّمي الخدمة في توسيع إمكانات Bazel عند إنشاء مشاريع macOS وiOS:

اختيار Xcode

إذا كان الإصدار الذي تستخدمه يتطلب Xcode، سيختار Bazel نسخة مناسبة بناءً على علامات --xcode_config و--xcode_version. يستهلك --xcode_config مجموعة إصدارات Xcode المتاحة ويضبط إصدارًا تلقائيًا في حال عدم تمرير --xcode_version. يتم إلغاء هذا الإعداد التلقائي من خلال العلامة --xcode_version، طالما تم ضبطها على إصدار Xcode ممثل في هدف --xcode_config.

وإذا لم تمرّر --xcode_config، سيستخدم Bazel XcodeVersionConfig التي تم إنشاؤها تلقائيًا والتي تمثّل إصدارات Xcode المتاحة على الجهاز المضيف. النسخة التلقائية هي أحدث إصدار Xcode متوفر. هذا الخيار مناسب للتنفيذ المحلي.

إذا كنت تستخدم إصدارات عن بُعد، يجب ضبط السمة --xcode_config على استهداف xcode_config الذي تحتوي السمة "versions" فيه على قائمة بالإتاحة عن بُعد. xcode_version وأهدافها default من بين هذه النطاقات xcode_versions.

إذا كنت تستخدم التنفيذ الديناميكي، عليك ضبط--xcode_config إلى xcode_config target الذيremote_versions هيavailable_xcodes استهداف يحتوي على إصدارات Xcode المتاحة عن بُعد، والذين local_versions هيavailable_xcodes الهدف يحتوي على إصدارات Xcode المتاحة محليًا. بالنسبة إلى local_versions، من المحتمل أنك تريد استخدام @local_config_xcode//:host_available_xcodes التي تم إنشاؤها تلقائيًا. ويكون إصدار Xcode التلقائي هو أحدث إصدار متوفر للطرفين، إن توفّر إصدار آخر، بخلاف ذلك، هو الإصدار التلقائي لاستهداف local_versions. إذا كنت تفضّل استخدام الخيار التلقائي local_versions، يمكنك تجاوز --experimental_prefer_mutual_default=false.