استخدام MDM لنشر تحديثات البرامج على أجهزة Apple
إدارة الأجهزة الإفصاحية هي مستقبل إدارة أجهزة Apple. كما تسمح للجهاز بتطبيق الإعدادات بشكل غير متزامن وإبلاغ حل إدارة الأجهزة المحمولة (MDM) بالحالة مرة أخرى دون الاستقصاء الثابت. وهذا مثالي لتحسين الأداء وقابلية التوسعة وتوفر كذلك أسلوبًا عصريًا في إدارة تحديثات البرامج. تعمل إدارة الأجهزة الإفصاحية على الإبلاغ الاستباقي للحالات من الأجهزة بينما نتغير القيم والتكوينات. وبهذه الطريقة، يتمتع حل MDM بعرض مُحدَّث على الأجهزة من دون الحاجة إلى إجراء استعلامات بانتظام.
بدلًا من إرسال أمر تحديث برامج إلى جهاز لبدء تحديث، يعلن حل MDM حالة إصدار نظام التشغيل المطلوبة ويفوض المهمة لتحقيق تلك الحالة إلى الجهاز نفسه. ويتيح ذلك عملية تحديث برامج مُدارة وذات شفافية أكبر للمستخدم.
أهمية استخدام إعلانات تحديث البرامج
يجب أن تستخدم حلول MDM إعلانات تحديث البرامج كلما أمكن. على الرغم من ذلك، لا تزال ملفات التعريف وأوامر تحديث البرامج القديمة متاحة ومدعومة. يمكنها العمل مع إعلانات تحديث البرامج مع التغييرات الآتية:
التأجيلات التي تم تحديدها بإعلان تحظى بأولوية على التأجيلات المكونة بواسطة قيد.
إعدادات تحديث البرامج التلقائي على macOS المُطبَّقة بواسطة إعلان تحظى بأولوية على إعدادات تحديث البرامج التلقائي المتوفرة في ملف تعريف تكوين.
عندما يكون هناك تحديث برامج مُعلَّق تم تكوينه باستخدام إدارة الأجهزة الإفصاحية، لا تتم معالجة بعض أوامر MDM بواسطة العميل بعد الآن، ما يؤدي إلى ظهور أخطاء تُفيد بوجود إعلان نشط على الجهاز، كما موضح في الجدول الآتي:
أمر MDM | النتيجة | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| محدودة: في macOS، قد تظهر التحديثات المستندة إلى نظام التشغيل غير المُدارة في استجابة الأمر — على سبيل المثال، في Xcode أو أدوات سطر الأوامر. | ||||||||||
| يُرجع الجهاز خطأ | ||||||||||
| يُرجع الجهاز مصفوفة حالة فارغة. |
باستخدام خدمة بحث برامج Apple
خدمة بحث برامج Apple (المتوفرة على https://gdmf.apple.com/v2/pmv) هي المورد الرسمي للحصول على قائمة بالتحديثات والترقيات والاستجابات الأمنية السريعة المتوفرة للجمهور. وتسمح لحل MDM بالاستعلام عن الإصدارات بمجرد نشرها وحساب مدى إمكانية تطبيقها على كل طراز من الأجهزة بطريقة دقيقة وفي وقت مناسب.
تحتوي استجابة JSON على ثلاث قوائم بإصدارات البرنامج المتاحة:
PublicAssetSets: تحتوي هذه القائمة على أحدث الإصدارات المتاحة للعامة إذا حاولوا التحديث أو الترقية.
AssetSets: هذه مجموعة فرعية من PublicAssetSets، وتحتوي على جميع الإصدارات المتاحة لحلول MDM التي ينبغي دفعها إلى الأجهزة الخاضعة للإشراف.
PublicRapidSecurityResponses: تحتوي هذه القائمة على إصدارات الاستجابة الأمنية السريعة المتوفرة حاليًا لأجهزة Apple.
يحتوي كل عنصر في القائمة على رقم ProductVersion
و Build
لنظام التشغيل، وعند نشر التحديث PostingDate
و ExpirationDate
، وقائمة SupportedDevices
لهذا الإصدار. تطابق قائمة الأجهزة قيمة ProductName
من الجهاز، والتي يتم إرجاعها في استجابة DeviceInformation
، أو طلب Authenticate
الأولي، أو في MachineInfo
عندما يحاول الجهاز التسجيل.
يتم تعيين تاريخ انتهاء الصلاحية عادةً على 180 يومًا بعد تاريخ الترحيل، ويحدد تاريخ انتهاء صلاحية توقيع التحديث. ولا يمكن تثبيت التحديث منتهي الصلاحية على الأجهزة بعد ذلك. عند توفر التحديثات اللاحقة، قد يتم تحديث تواريخ انتهاء الصلاحية للتحديثات السابقة. إذا لم يتم تحديد تاريخ انتهاء الصلاحية، فهذا يعني أن التحديث لم تنتهِ صلاحيته بعد. تنتهي صلاحية التحديث عندما يكون له تاريخ انتهاء صلاحية في الماضي فقط.
يتم تجميع الأصول حسب النظام الأساسي لنظام التشغيل باستخدام المفاتيح التالية:
iOS
(الذي يتضمن iPadOS و tvOS و watchOS)macOS
xrOS
(وهو visionOS)
{
"AssetSets": {
"iOS": [
{
"ProductVersion": "17.5",
"Build": "21F6079",
"PostingDate": "2024-05-13",
"ExpirationDate": "2024-08-15",
"SupportedDevices": ["iPad11,1", "iPad11,2", "iPad11,3", "iPad11,4", "iPad11,6", "iPad11,7", "iPad12,1", "iPad12,2", "iPad13,1","iPad13,10", "iPad13,11", "iPad13,16", "iPad13,17", “iPad13,18", "iPad13,19", "iPad13,2", "iPad13,4", “iPad13,5", "iPad13,6", "iPad13,7", "iPad13,8", "iPad13,9", "iPad14,1", "iPad14,2", "iPad14,3", "iPad14,4", "iPad14,5", "iPad14,6", "iPad6,11", "iPad6,12", "iPad6,3", "iPad6,4", "iPad6,7", "iPad6,8", "iPad7,1", "iPad7,11", "iPad7,12", "iPad7,2", "iPad7,3", "iPad7,4", "iPad7,5", "iPad7,6", "iPad8,1", "iPad8,10", "iPad8,11", "iPad8,12", "iPad8,2", "iPad8,3", "iPad8,4", "iPad8,5", "iPad8,6", "iPad8,7", "iPad8,8", "iPad8,9", "iPhone10,1", "iPhone10,2", "iPhone10,3", "iPhone10,4", "iPhone10,5", "iPhone10,6", "iPhone11,2", "iPhone11,6", "iPhone11,8", "iPhone12,1", "iPhone12,3", "iPhone12,5", "iPhone12,8", "iPhone13,1", "iPhone13,2", "iPhone13,3", "iPhone13,4", "iPhone14,2", "iPhone14,3", "iPhone14,4", "iPhone14,5", "iPhone14,6", "iPhone14,7", "iPhone14,8", "iPhone15,2", "iPhone15,3"
]
},
استخدم قائمة إصدارات المنتج لتحديد الإصدارات الأكبر من إصدار نظام التشغيل الحالي للجهاز والتي يمكن تطبيقها على جهاز معين. وعليك تقديم قائمة الإصدارات إلى مسؤول MDM كترشيحات محتملة لتحديث نظام التشغيل.
إرسال تقرير حالة إلى حل MDM
لتلقي تحديثات بشأن عناصر الحالة بينما تتغير، يجب أن يشترك الخادم في كل تقرير حالة عن طريق إرسال إعلان ManagementStatusSubscriptions
إلى الجهاز. بعد ذلك، يرسل الجهاز StatusReport
إلى حل MDM عندما يصبح إعلان ManagementStatusSubscriptions
نشطًا، إذا تغيرت حالة عنصر تم الاشتراك فيه، وذلك كل 24 ساعة.
بهدف مراقبة إصدارات نظام التشغيل وحالة تحديث البرامج، قد يحتاج حل MDM إلى الاشتراك في تقارير الحالة الآتية:
تقرير الحالة | Description |
---|---|
| إصدار بنية نظام التشغيل على الجهاز (على سبيل المثال، 21E219). |
| إصدار نظام التشغيل المستخدَم على الجهاز (على سبيل المثال، 17.4). |
| إصدارا بنية نظام التشغيل والاستجابة الأمنية السريعة المستخدَمان على الجهاز، (على سبيل المثال، 20A123a أو 20F75c). |
| إصدار الاستجابة الأمنية السريعة الخاصة بنظام التشغيل المستخدَم على الجهاز (على سبيل المثال، a). |
| قاموس يحتوي على إصدارَي البنية ونظام التشغيل الخاصَّين بتحديث البرامج المعلق على الجهاز. |
| حالة تثبيت تحديث البرامج، حيث تتضمن القيم الآتية:
|
| قاموس يحتوي تفاصيل عن السبب حول تعليق تحديث البرامج. يتضمن المفتاح
|
| تفاصيل حول فشل تحديث للبرامج. تتضمن التفاصيل عدد مرات فشل تحديث البرامج والطابع الزمني لآخر فشل وسبب الفشل. |
| اسم البرنامج التجريبي المسجل للجهاز، أو سلسلة فارغة إذا لم يكن هنا برنامج تجريبي مسجل. |
إضافةً إلى التقارير الأخرى، قد تحتاج حلول MDM أيضًا إلى إتاحة softwareupdate.install-reason
للمسؤولين لأغراض الدعم وتوفير معلومات إضافية حول كيفية إطلاق تحديث. يمكن استخدام هذا القاموس لتحديد ما إذا بدأ مستخدم ما التحديث بنفسه أو حدث التحديث تلقائيًا أو تم فرضه بواسطة إفصاح فرض تحديث البرامج.
طلب حد أدنى محدد لإصدار البرنامج أثناء تسجيل MDM
إذا كان يدعم الجهاز هذه الإمكانية، فإنه يُرجع مفتاح MDM_CAN_REQUEST_SOFTWARE_UPDATE، ويتم التعيين إلى "صواب" في بيانات MachineInfo
التي يرسلها في طلب HTTP POST الأولي إلى حل MDM عندما يكتشف الجهاز تكوين إدارة في مساعد الإعداد. لمزيد من المعلومات، انظر ملف MachineInfo yaml في قسم إدارة أجهزة Apple بمخزن GitHub.
إضافة إلى ذلك، توفر الأجهزة الحقول الآتية في بيانات MachineInfo
(كل السلاسل):
المفتاح | أدنى نظام تشغيل مدعوم | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | إصدار البنية المثبتة على الجهاز (على سبيل المثال، 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | إصدار نظام التشغيل المثبت على الجهاز (على سبيل المثال، 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | إصدار الاستجابة الأمنية السريعة الخاصة بالجهاز (إذا كانت متاحًا). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | إصدار الاستجابة الأمنية السريعة الإضافية الخاصة بالجهاز (إذا كانت متاحًا). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | معرّف نموذج الجهاز المستَخدم للبحث عن تحديثات نظام التشغيل المتوفرة في خدمة بحث برامج Apple. |
استنادًا إلى المعلومات المقدمة، يمكن لحل MDM أن يقرر ما إذا كان يجب فرض التحديث على الجهاز.
إذا اختار حل MDM عدم فرض تحديث للبرامج، فإنه ببساطة يقوم بإرجاع ملف تعريف تسجيل MDM استجابةً لطلب HTTP POST، كما يسمح عادةً لتسجيل MDM بالمتابعة.
إذا اختار حل MDM فرض تحديث البرامج، يلزم عليه إرجاع استجابة HTTP مع رمز الحالة 403، وتضمين كائن JSON أو XML في نص الاستجابة (يلزم تعيين عنوان استجابة نوع-المحتوى HTTP إلى
application/json
أوapplication/xml
على التوالي).
بعد تلقي استجابة الخطأ تلك، يحاول الجهاز التحديث إلى الإصدار المحدد. إذا نجح التحديث، يقوم الجهاز بإعادة التشغيل ويجب أن ينتقل المستخدم إلى مساعد الإعداد مجددًا. يعرض طلب MachineInfo
POST التالي الموجه من الجهاز إلى حل MDM إصدار نظام التشغيل المحدَّث، ويمكن لحل MDM بعد ذلك متابعة تسجيل MDM. إذا فشل التحديث، يظهر خطأ للمستخدم ويظهر جزء الإدارة عن بُعد في مساعد الإعداد مجددًا.
مخطط الاستجابة
مذكور في الجدول أدناه.
المفتاح | النوع | مطلوب | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| سلسلة | نعم | يجب تعيينه إلى | ||||||||
| سلسلة | لا | وصف الخطأ. يُستخدم لأغراض تسجيل الدخول فقط. | ||||||||
| سلسلة | لا | وصف الخطأ المناسب عرضه للمستخدم. | ||||||||
| قاموس | نعم | بيانات إضافية تحدد تحديث البرامج. |
مخطط قاموس التفاصيل
محدد هنا.
المفتاح | النوع | مطلوب | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| سلسلة | نعم | إصدار نظام التشغيل الذي يجب على الجهاز التحديث إليه. | ||||||||
| سلسلة | لا | إصدار البنية الذي يجب على الجهاز التحديث إليه. | ||||||||
| قاموس | لا | يسجل الجهاز في البرنامج التجريبي، ما يسمح بإجراء تحديثات برامج مفروضة على إصدارات نظام التشغيل الخاصة بالبرنامج التجريبي. يظل الجهاز في البرنامج التجريبي بعد اكتمال تحديث البرامج الذي تم فرضه. |
إذا تم تحديد OSVersion
فقط، يقوم الجهاز بتنزيل أي استجابات أمنية سريعة متاحة ويثبتها تلقائيًا لهذا الإصدار. في حالة الاحتياج إلى بنية محددة أو إصدار تكميلي، يمكن لحل MDM أيضًا تحديد BuildVersion
بشكل اختياري. على سبيل المثال، لمطالبة جهاز بتشغيل iOS 16.5.1(a) قبل التسجيل — على الرغم من أن iOS 16.5.1(c) متاح بالفعل — يلزم تعيين حل MDM OSVersion
إلى iOS 16.5.1 و BuildVersion
إلى 20F770750b.
هام: قبل macOS 15, يمكن فقط تحديد إصدارات من قائمتي PublicAssetSets
و PublicRapidSecurityResponses
. في macOS 15, يمكن أيضًا استخدام الأصول من AssetSets
.
إعدادات MDM للتحقق من وجود تحديثات
يتضمن إعلان com.apple.configuration.softwareupdate.settings
(متاح في iOS 18 و iPadOS 18 و macOS 15) قواميس يمكن استخدامها لتكوين جوانب متعددة من سلوك تحديث البرامج.
بعد قيام حل MDM بتوزيع مفاتيح مختلفة عبر إعلانات متعددة، يدمج الجهاز إعدادات كل إفصاحات إعدادات تحديث البرامج النشطة. في حالة أن المفتاح نفسه مكوَّن بواسطة إفصاحات متعددة، يعتمد سلوك الدمج على المفتاح الفردي وموضح في الجداول أدناه.
تكوين تحديثات البرامج التلقائية باستخدام MDM
يوفر الإفصاح com.apple.configuration.softwareupdate.settings
قاموسًا لتحديد سلوك تحديث البرامج التلقائي على أجهزة iPhone و iPad و Mac الخاضعة للإشراف. لمزيد من المعلومات، انظر مفاتيح القاموس AutomaticActions.
كيفية تعامل MDM مع الاستجابات الأمنية السريعة
تنطبق الاستجابات الأمنية السريعة دائمًا على آخر تحديث لنظام التشغيل، حيث يصبح الإصدار الأساسي للاستجابة الأمنية السريعة. على سبيل المثال، إذا كان iPhone مثبتًا عليه إصدار نظام التشغيل iOS 17.2، فإنه يُطبِّق التحديث التكميلي 17.2 (a)، إذا كان ذلك متوفرًا. في iOS 18 و iPadOS 18 و macOS 15، تم توفير التحديثات المجمعة، ما يسمح لتحديث البرامج بتضمين أي استجابات أمنية سريعة متوفرة.
قبل iOS 18 و iPadOS 18 و macOS 15، قد يتعين على حل MDM إطلاق تحديثين للبرامج لضمان وجود إصدار تكميلي محدد: أولًا، يجب أن يحدث الجهاز إلى الإصدار الأساسي الخاص بالتحديث التكميلي، وذلك إذا لم يكن الجهاز على هذا الإصدار الأساسي بالفعل (على سبيل المثال، iOS 17.1 إلى iOS 17.2)؛ ثم يجب أن يحدث الإصدار الأساسي إلى الإصدار التكميلي (على سبيل المثال، iOS 17.2 إلى iOS 17.2 (a)).
في iOS 18 و iPadOS 18 و macOS 15، يمكن لحل MDM تحديد أي مما يأتي:
إصدار نظام التشغيل (حيث يثبت الاستجابات الأمنية السريعة المتاحة تلقائيًا)
إصدار البنية التكميلية (التي تسبب تنفيذ الجهاز لتحديث ضروري إلى الإصدار الأساسي تلقائيًا كجزء من العملية)
ينطبق هذان الأسلوبان على تكوين فرض تحديث البرامج، وعلى الحد الأدنى للإصدار الذي تم فرضه خلال التسجيل التلقائي للأجهزة.
يمكن أيضًا استخدام الإفصاح com.apple.configuration.softwareupdate.settings
لتكوين سلوك الاستجابة الأمنية السريعة على أجهزة iPhone و iPad و Mac الخاضعة للإشراف. لمزيد من المعلومات، انظر مفاتيح القاموس RapidSecurityResponse لـ iOS و iPadOS و macOS.
تأجيل تحديث للبرامج باستخدام MDM
يتم تأجيل تحديث أو ترقية للبرامج من يوم واحد إلى 90 يومًا باستخدام الإفصاح com.apple.configuration.softwareupdate.settings
على أجهزة iPhone و iPad و Mac الخاضعة للإشراف.
يحدد التأجيل المكوَّن عدد الأيام التي لا يتم فيها توفير الإصدار للمستخدمين بعدما أصبح متاحًا للجمهور. لا يزال يمكن لحل MDM فرض تحديث أو ترقية محددة للبرامج أو الاستجابة الأمنية السريعة على الأجهزة المُدارة، وذلك بشكل مستقل عن تأجيل مكوَّن. لمزيد من المعلومات، انظر مفاتيح قاموس التأجيلات لـ iOS و iPadOS ومفاتيح قاموس التأجيلات لـ macOS.
ملاحظة: قد يؤدي تأجيل تحديثات البرامج أيضًا إلى تأجيل أي استجابات أمنية سريعة تعتمد على هذا الإصدار.
فرض تحديثات البرامج باستخدام MDM
لفرض تحديث للبرامج بوقت محدد على الأجهزة المسجلة باستخدام تسجيل الجهاز أو التسجيل التلقائي للأجهزة، يمكن لحلول MDM تطبيق الإفصاح com.apple.configuration.softwareupdate.enforcement.specific
.
إذا حدد تكوين إصدار نظام تشغيل أو بنية نفس إصدار الجهاز الحالي أو أقدم منه، يتم تجاهل التكوين.
إذا كانت هناك تكوينات متعددة بإصدار نظام تشغيل أو بنية أحدث من إصدار الجهاز الحالي، تتم معالجة التكوين ذي التاريخ والوقت المستهدفين الأحدث أولًا، ثم أي تكوينات أخرى متبقية في قائمة الانتظار. عند تحديث الجهاز إلى إصدار جديد، تتم إعادة معالجة مجموعة التكوينات لتحديد التكوين التالي الذي ستتم معالجته.
يتم تثبيت أي استجابات أمنية سريعة متاحة تلقائيًا إذا حدد حل MDM TargetOSVersion
فقط. لاستهداف إصدار محدد أو استجابة أمنية سريعة، يمكن لحل MDM استخدام المفتاح TargetBuildVersion
إضافةً إلى تحديد البنية، بما في ذلك معرِّف الإصدار التكميلي.
لمزيد من المعلومات، انظر مفاتيح قاموس فرض تحديثات البرامج.
Notifications
يقوم مفتاح الإشعارات بتغيير سلوك الإشعار الافتراضي بحيث يعرض إشعارًا قبل ساعة واحدة فقط من موعد الفرض والعد التنازلي لإعادة التشغيل. لمزيد من المعلومات، انظر مفتاح الإشعارات.
استخدام رمز bootstrap لأجهزة كمبيوتر Mac المزودة برقاقات Apple
لتخويل تحديث للبرامج مفروض على جهاز كمبيوتر Mac مزود برقاقات Apple خاضع للإشراف، يمكن لحل MDM طلب رمز bootstrap وإيداعه. يسمح ذلك بتجربة سلسة تمامًا في تحديث البرامج ويتجنب الاحتياج إلى تفاعل المستخدم كجزء من العملية. يستخدم الجهاز GetBootstrapTokenRequest
لاسترداد رمز bootstrap من حل MDM عند الحاجة.
في الخطوة الأولى، يحدد حل MDM ما إذا كان الجهاز يدعم رمز bootstrap باستخدام الأمر SecurityInfo
. إذا تضمنت الاستجابة BootstrapTokenRequiredForSoftwareUpdate
معينًا على "صواب"، يمكن للجهاز استخدام رمز bootstrap لتخويل تحديث للبرامج.
لإنشاء رمز bootstrap، يجب أن يضيف حل MDM com.apple.mdm.bootstraptoken
إلى المصفوفة ServerCapabilities
في ملف تعريف MDM. لمزيد من المعلومات، انظر حمولة MDM على موقع ويب مطوري Apple.
بعد تلقي الجهاز لرمز bootstrap، يُنشئ الجهاز رمز bootstrap في المرة القادمة التي يقوم فيها مستخدم تم تمكين الرمز الآمن له بتسجيل الدخول. ثم يتواصل مع نقطة نهاية تسجيل الوصول الخاصة بحل MDM ويقوم بإيداع الرمز باستخدام SetBootstrapTokenRequest
. لمزيد من المعلومات، انظر تعيين رمز Bootstrap على موقع ويب مطوري Apple.
لأحدث مواصفات التخطيط، انظر قسم إدارة أجهزة Apple بمخزن GitHub.