
استخدام إدارة الأجهزة لنشر تحديثات البرامج على أجهزة Apple
إدارة الأجهزة الإفصاحية هي مستقبل إدارة أجهزة Apple. كما تسمح للجهاز بتطبيق الإعدادات بشكل غير متزامن وإبلاغ خدمة إدارة الأجهزة بالحالة مرة أخرى دون الاستقصاء الثابت. وهذا مثالي لتحسين الأداء وقابلية التوسعة، وتوفر كذلك أسلوبًا متقدمًا في إدارة تحديثات البرامج. تعمل إدارة الأجهزة الإفصاحية على الإبلاغ الاستباقي للحالات من الأجهزة بينما نتغير القيم والتكوينات. وبهذه الطريقة، تتمتع خدمة إدارة الأجهزة بعرض مُحدَّث على الأجهزة من دون الحاجة إلى إجراء استعلامات بانتظام.
بدلًا من إرسال أمر تحديث برامج إلى جهاز لبدء تحديث، تعلن خدمة إدارة الأجهزة حالة إصدار نظام التشغيل المطلوبة وتفوض المهمة لتحقيق تلك الحالة إلى الجهاز نفسه. ويتيح ذلك عملية تحديث برامج مُدارة وذات شفافية أكبر للمستخدم.
أهمية استخدام إعلانات تحديث البرامج
يجب أن تستخدم خدمات إدارة الأجهزة إعلانات تحديث البرامج كلما أمكن. على الرغم من ذلك، لا تزال ملفات التعريف وأوامر تحديث البرامج القديمة متاحة ومدعومة. يمكنها العمل مع إعلانات تحديث البرامج مع التغييرات الآتية:
التأجيلات التي تم تحديدها بإعلان تحظى بأولوية على التأجيلات المكونة بواسطة قيد.
إعدادات تحديث البرامج التلقائي على macOS المُطبَّقة بواسطة إعلان تحظى بأولوية على إعدادات تحديث البرامج التلقائي المتوفرة في ملف تعريف تكوين.
عندما يكون هناك تحديث برامج مُعلَّق يكوِّنه نظام التشغيل بتكوينه باستخدام إدارة الأجهزة الإفصاحية، لا يمكن للعميل بعد الآن معالجة بعض أوامر إدارة الأجهزة، وتظهر أخطاء تشير إلى بوجود إعلان نشط على الجهاز، كما موضح في الجدول الآتي:
أمر إدارة الأجهزة | النتيجة | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| محدودة: بالنسبة إلى أجهزة كمبيوتر Mac، قد تظهر التحديثات المستندة إلى نظام التشغيل غير المُدارة في استجابة الأمر — على سبيل المثال، في Xcode أو أدوات سطر الأوامر. | ||||||||||
| يُرجع الجهاز خطأ | ||||||||||
| يُرجع الجهاز مصفوفة حالة فارغة. |
باستخدام خدمة بحث برامج Apple
خدمة بحث برامج Apple (المتوفرة على https://gdmf.apple.com/v2/pmv) هي المورد الرسمي للحصول على قائمة بالتحديثات والترقيات والاستجابات الأمنية السريعة المتوفرة للجمهور. وتسمح لخدمة إدارة الأجهزة بالاستعلام عن الإصدارات بمجرد نشرها بواسطة Apple، وحساب مدى إمكانية تطبيقها على كل طراز من الأجهزة بطريقة دقيقة وفي وقت مناسب.
تحتوي استجابة JSON على ثلاث قوائم بإصدارات البرنامج المتاحة:
PublicAssetSets: تحتوي هذه القائمة على أحدث الإصدارات المتاحة للعامة إذا حاولوا التحديث أو الترقية.
AssetSets: هذه القائمة مجموعة فرعية من
PublicAssetSets
، وتحتوي على كل الإصدارات المتاحة لخدمات إدارة الأجهزة التي ينبغي دفعها إلى الأجهزة الخاضعة للإشراف.PublicRapidSecurityResponses: تحتوي هذه القائمة على إصدارات الاستجابة الأمنية السريعة المتوفرة حاليًا لأجهزة Apple.
يحتوي كل عنصر في القائمة على رقم ProductVersion
و Build
لنظام التشغيل، وعند نشر التحديث PostingDate
و ExpirationDate
، وقائمة SupportedDevices
لهذا الإصدار. تطابق قائمة الأجهزة قيمة ProductName
من الجهاز، والتي يتم إرجاعها في استجابة DeviceInformation
، أو طلب Authenticate
الأولي، أو في MachineInfo
عندما يحاول الجهاز التسجيل.
يتم تعيين تاريخ انتهاء الصلاحية عادةً على 180 يومًا بعد تاريخ الترحيل، ويحدد تاريخ انتهاء صلاحية توقيع التحديث. ولا يمكن تثبيت التحديث منتهي الصلاحية على الأجهزة بعد ذلك. عند توفر التحديثات اللاحقة، قد يتم تحديث تواريخ انتهاء الصلاحية للتحديثات السابقة. إذا لم يتم تحديد تاريخ انتهاء الصلاحية، فهذا يعني أن التحديث لم تنتهِ صلاحيته بعد. تنتهي صلاحية التحديث عندما يكون له تاريخ انتهاء صلاحية في الماضي فقط.
يتم تجميع الأصول حسب النظام الأساسي لنظام التشغيل باستخدام المفاتيح التالية:
iOS
(الذي يتضمن iPadOS و tvOS و watchOS)macOS
visionOS
{
"AssetSets": {
"iOS": [
{
"ProductVersion": "18.2.1",
"Build": "22C6161",
"PostingDate": "2025-01-06",
"ExpirationDate": "2025-04-17",
"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,10", "iPad14,11", "iPad14,2", "iPad14,3", "iPad14,4", "iPad14,5", "iPad14,6", "iPad14,8", "iPad14,9", "iPad16,1", "iPad16,2", "iPad16,3", "iPad16,4", "iPad16,5", "iPad16,6", "iPad7,11", "iPad7,12", "iPad8,1", "iPad8,10", "iPad8,11", "iPad8,12", "iPad8,2", "iPad8,3", "iPad8,4", "iPad8,5", "iPad8,6", "iPad8,7", "iPad8,8", "iPad8,9", "iPhone11,2", "iPhone11,4", "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", "iPhone15,4", "iPhone15,5", "iPhone16,1", "iPhone16,2", "iPhone17,1", "iPhone17,2", "iPhone17,3", "iPhone17,4"
]
},
استخدم قائمة إصدارات المنتج لتحديد الإصدارات الأحدث من إصدار نظام التشغيل الحالي للجهاز، والتي يمكن تطبيقها على جهاز معين. ثم عليك تقديم قائمة الإصدارات إلى مسؤول خدمة إدارة الأجهزة كترشيحات محتملة لتحديث نظام التشغيل.
إرسال تقرير حالة إلى خدمة إدارة الأجهزة
لتلقي تحديثات بشأن عناصر الحالة بينما تتغير، يجب أن يشترك الخادم في كل تقرير حالة عن طريق إرسال إعلان ManagementStatusSubscriptions
إلى الجهاز. بعد ذلك، يرسل الجهاز StatusReport
إلى خدمة إدارة الأجهزة عندما يصبح إعلان ManagementStatusSubscriptions
نشطًا، إذا تغيرت حالة عنصر تم الاشتراك فيه، وذلك كل 24 ساعة.
بهدف مراقبة إصدارات نظام التشغيل وحالة تحديث البرامج، قد تحتاج خدمة إدارة الأجهزة إلى الاشتراك في تقارير الحالة الآتية:
تقرير الحالة | الوصف |
---|---|
| إصدار بنية نظام التشغيل على الجهاز (على سبيل المثال، 21E219). |
| إصدار نظام التشغيل المستخدَم على الجهاز (على سبيل المثال، 17.4). |
| إصدارا بنية نظام التشغيل والاستجابة الأمنية السريعة المستخدَمان على الجهاز، (على سبيل المثال، 20A123a أو 20F75c). |
| إصدار الاستجابة الأمنية السريعة الخاصة بنظام التشغيل المستخدَم على الجهاز (على سبيل المثال، a). |
| قاموس يحتوي على إصدارَي البنية ونظام التشغيل الخاصَّين بتحديث البرامج المعلق على الجهاز. |
| حالة تثبيت تحديث البرامج، حيث تتضمن القيم الآتية:
|
| قاموس يحتوي تفاصيل عن السبب حول تعليق تحديث البرامج. يتضمن المفتاح
|
| تفاصيل حول فشل تحديث للبرامج. تتضمن التفاصيل عدد مرات فشل تحديث البرامج والطابع الزمني لآخر فشل وسبب الفشل. |
| اسم البرنامج التجريبي المسجل للجهاز، أو سلسلة فارغة إذا لم يكن هنا برنامج تجريبي مسجل. |
إضافةً إلى التقارير الأخرى، قد تحتاج خدمات إدارة الأجهزة أيضًا إلى إتاحة softwareupdate.install-reason
للمسؤولين لأغراض الدعم، وتوفير معلومات إضافية حول كيفية حدوث تحديث. يمكنك استخدام هذا القاموس لتحديد ما إذا يبدأ مستخدم ما التحديث أم يحدث التحديث تلقائيًا أم يتم بدؤه بواسطة إعلان فرض تحديث البرامج.
طلب حد أدنى محدد لإصدار البرنامج أثناء التسجيل
إذا كان يدعم الجهاز هذه الإمكانية، فإنه يُرجع مفتاح MDM_CAN_REQUEST_SOFTWARE_UPDATE
، ويتم التعيين إلى "صواب" في بيانات MachineInfo
التي يرسلها في طلب HTTP POST
الأولي إلى خدمة إدارة الأجهزة عندما يكتشف الجهاز تكوين إدارة في مساعد الإعداد. لمزيد من المعلومات، انظر ملف MachineInfo yaml في قسم إدارة أجهزة Apple بمخزن GitHub.
إضافة إلى ذلك، توفر الأجهزة الحقول الآتية في بيانات MachineInfo
(كل السلاسل):
المفتاح | الحد الأدنى من إصدارات أنظمة التشغيل المدعومة | الوصف | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
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. |
استنادًا إلى المعلومات المقدمة، يمكن لخدمة إدارة الأجهزة أن تقرر ما إذا كان يجب فرض التحديث على الجهاز.
إذا اختارت خدمة إدارة الأجهزة عدم فرض تحديث للبرامج، فإنها ببساطة اقوم بإرجاع ملف تعريف التسجيل استجابةً لطلب
HTTP POST
، حيث تفعل ذلك للسماح للتسجيل بالمتابعة.إذا اختارت خدمة إدارة الأجهزة فرض تحديث البرامج، يلزم عليها إرجاع استجابة
HTTP
مع رمز الحالة 403، وتضمين كائن JSON أو XML في نص الاستجابة (يلزم تعيين عنوان استجابةنوع-المحتوى HTTP
إلىapplication/json
أوapplication/xml
، على التوالي).
بعد تلقي استجابة الخطأ تلك، يحاول الجهاز التحديث إلى الإصدار المحدد. إذا نجح التحديث، يقوم الجهاز بإعادة التشغيل ويجب أن ينتقل المستخدم إلى مساعد الإعداد مجددًا. يعرض طلب MachineInfo POST
التالي الموجه من الجهاز إلى خدمة إدارة الأجهزة إصدار نظام التشغيل المحدَّث، ويمكن للخدمة بعد ذلك متابعة التسجيل. إذا فشل التحديث، يتم عرض رسالة خطأ للمستخدم، ويظهر جزء الإدارة عن بُعد في مساعد الإعداد مجددًا.
مخطط الاستجابة
مذكور في الجدول أدناه.
المفتاح | النوع | مطلوب | الوصف | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| سلسلة | نعم | يجب تعيينه إلى | ||||||||
| سلسلة | لا | وصف الخطأ. يُستخدم لأغراض تسجيل الدخول فقط. | ||||||||
| سلسلة | لا | وصف الخطأ المناسب عرضه للمستخدم. | ||||||||
| قاموس | نعم | بيانات إضافية تحدد تحديث البرامج. |
مخطط قاموس التفاصيل
محدد هنا.
المفتاح | النوع | مطلوب | الوصف | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| سلسلة | نعم | إصدار نظام التشغيل الذي يجب على الجهاز التحديث إليه. | ||||||||
| سلسلة | لا | إصدار البنية الذي يجب على الجهاز التحديث إليه. | ||||||||
| قاموس | لا | يسجل الجهاز في البرنامج التجريبي، ما يسمح بإجراء تحديثات برامج مفروضة على إصدارات نظام التشغيل الخاصة بالبرنامج التجريبي. يظل الجهاز في البرنامج التجريبي بعد اكتمال تحديث البرامج الذي تم فرضه. |
إذا قمت بتحديد OSVersion
فقط، يقوم الجهاز بتنزيل أي استجابات أمنية سريعة متاحة ويثبتها تلقائيًا لهذا الإصدار. في حالة الاحتياج إلى بنية محددة أو إصدار تكميلي، يمكن لخدمة إدارة الأجهزة أيضًا تحديد BuildVersion
بشكل اختياري. على سبيل المثال، لمطالبة جهاز بتشغيل iOS 16.5.1(a) قبل التسجيل — على الرغم من أن iOS 16.5.1(c) متاح بالفعل — يلزم تعيين خدمة إدارة الأجهزة OSVersion
إلى iOS 16.5.1
و BuildVersion
إلى 20F770750b
.
مهم: قبل macOS 15, يمكن فقط تحديد إصدارات من قائمتي PublicAssetSets
و PublicRapidSecurityResponses
. في macOS 15, يمكن أيضًا استخدام الأصول من AssetSets
.
إعدادات إدارة الأجهزة للتحقق من وجود تحديثات البرامج
يتضمن إعلان com.apple.configuration.softwareupdate.settings
(متاح في iOS 18 و iPadOS 18 و macOS 15 و tvOS 18.4 أو أحدث) قواميس يمكن استخدامها لتكوين جوانب متعددة من سلوك تحديث البرامج.
بعد قيام خدمة إدارة الأجهزة بتوزيع مفاتيح مختلفة عبر إعلانات متعددة، يدمج الجهاز إعدادات كل إفصاحات إعدادات تحديث البرامج النشطة. في حالة أن إفصاحات متعددة قامت بتكوين المفتاح نفسه، يعتمد سلوك الدمج على المفتاح الفردي، وموضح في الجداول أدناه.
تكوين تحديثات البرامج التلقائية باستخدام إدارة الأجهزة
يوفر الإفصاح com.apple.configuration.softwareupdate.settings
قاموسًا لتحديد سلوك تحديث البرامج التلقائي على أجهزة iPhone و iPad و Apple TV و Mac الخاضعة للإشراف. لمزيد من المعلومات، انظر مفاتيح القاموس AutomaticActions.
كيفية تعامل خدمة إدارة الأجهزة مع الاستجابات الأمنية السريعة
تنطبق الاستجابات الأمنية السريعة دائمًا على آخر تحديث لنظام التشغيل، حيث يصبح الإصدار الأساسي للاستجابة الأمنية السريعة. على سبيل المثال، إذا كان iPhone مثبتًا عليه إصدار نظام التشغيل iOS 17.2، فإنه يُطبِّق التحديث التكميلي 17.2 (a)، إذا كان ذلك متوفرًا. في iOS 18 و iPadOS 18 و macOS 15، تم توفير التحديثات المجمعة، ما يسمح لتحديث البرامج بتضمين أي استجابات أمنية سريعة متوفرة.
قبل iOS 18 و iPadOS 18 و macOS 15، قد يتعين على خدمة إدارة الأجهزة إطلاق تحديثين للبرامج لضمان وجود إصدار تكميلي محدد. أولًا، يجب أن تحدث الجهاز إلى الإصدار الأساسي الخاص بالتحديث التكميلي، وذلك إذا لم يكن الجهاز على هذا الإصدار الأساسي بالفعل (على سبيل المثال، iOS 17.1 إلى iOS 17.2). ثم يجب أن تحدث الجهاز إلى الإصدار الأساسي إلى الإصدار التكميلي (على سبيل المثال، iOS 17.2 إلى iOS 17.2 (a)).
في iOS 18 و iPadOS 18 و macOS 15، يمكن لخدمة إدارة الأجهزة تحديد أي مما يأتي:
إصدار نظام التشغيل (حيث يثبت الاستجابات الأمنية السريعة المتاحة تلقائيًا)
إصدار البنية التكميلية (التي تسبب تنفيذ الجهاز لتحديث ضروري إلى الإصدار الأساسي تلقائيًا كجزء من العملية)
ينطبق هذان الأسلوبان على تكوين فرض تحديث البرامج، وعلى الحد الأدنى للإصدار الذي تم فرضه خلال التسجيل التلقائي للأجهزة.
يمكن أيضًا استخدام الإفصاح com.apple.configuration.softwareupdate.settings
لتكوين سلوك الاستجابة الأمنية السريعة على أجهزة iPhone و iPad و Mac الخاضعة للإشراف. لمزيد من المعلومات، انظر مفاتيح القاموس RapidSecurityResponse لـ iOS و iPadOS و macOS.
تأجيل تحديث للبرامج باستخدام إدارة الأجهزة
يتم تأجيل تحديث أو ترقية للبرامج من يوم واحد إلى 90 يومًا باستخدام الإفصاح com.apple.configuration.softwareupdate.settings
على أجهزة iPhone و iPad و Mac الخاضعة للإشراف.
يحدد التأجيل المكوَّن عدد الأيام التي تسبق توفير المؤسسة للإصدار للمستخدمين بعدما يصبح متاحًا للجمهور. لا يزال يمكن لخدمة إدارة الأجهزة فرض تحديث أو ترقية محددة للبرامج أو الاستجابة الأمنية السريعة على الأجهزة المُدارة، وذلك بشكل مستقل عن تأجيل مكوَّن. لمزيد من المعلومات، انظر مفاتيح قاموس التأجيلات لـ iOS و iPadOS و tvOS ومفاتيح قاموس التأجيلات لـ macOS.
ملاحظة: قد يؤدي تأجيل تحديثات البرامج أيضًا إلى تأجيل أي استجابات أمنية سريعة تعتمد على هذا الإصدار.
فرض تحديثات للبرامج باستخدام إدارة الأجهزة
لفرض تحديث للبرامج بوقت محدد على الأجهزة المسجلة باستخدام تسجيل الجهاز أو التسجيل التلقائي للأجهزة، يمكن لخدمات إدارة الأجهزة تطبيق الإفصاح com.apple.configuration.softwareupdate.enforcement.specific
.
إذا تم تطبيق تكوين على جهاز يحدد إصدار نظام تشغيل أو بنية نفس إصدار الجهاز الحالي أو أقدم منه، يعرض الجهاز خطأ في تقرير الحالة
إذا كانت هناك تكوينات متعددة بإصدار نظام تشغيل أو بنية أحدث من إصدار الجهاز الحالي، تتم معالجة التكوين ذي التاريخ والوقت المستهدفين الأحدث أولًا، ثم أي تكوينات أخرى متبقية في قائمة الانتظار. عند تحديث الجهاز إلى إصدار جديد، تتم إعادة معالجة مجموعة التكوينات لتحديد التكوين التالي الذي ستتم معالجته. كجزء من هذه العملية، يتجاهل الجهاز أي تكوينات موجودة تحدد إصدارًا أقدم أو نفس الإصدار الحالي.
يثبت نظام التشغيل أي استجابات أمنية سريعة متاحة تلقائيًا إذا حددت خدمة إدارة الأجهزة TargetOSVersion
فقط. لاستهداف إصدار محدد أو استجابة أمنية سريعة، يمكن لخدمة إدارة الأجهزة استخدام المفتاح TargetBuildVersion
إضافةً إلى تحديد البنية، بما في ذلك معرِّف الإصدار التكميلي.
لمزيد من المعلومات، انظر مفاتيح قاموس فرض تحديثات البرامج.
الإشعارات
يقوم مفتاح الإشعارات بتغيير سلوك الإشعار الافتراضي بحيث يعرض إشعارًا قبل ساعة واحدة فقط من موعد الفرض والعد التنازلي لإعادة التشغيل. لمزيد من المعلومات، انظر مفتاح الإشعارات.
استخدام رمز bootstrap لأجهزة كمبيوتر Mac المزودة برقاقات Apple
لتخويل تحديث للبرامج مفروض على جهاز كمبيوتر Mac مزود برقاقات Apple خاضع للإشراف، يمكن لخدمة إدارة الأجهزة طلب رمز bootstrap وإيداعه. يسمح ذلك بتجربة سلسة تمامًا في تحديث البرامج، ويتجنب الاحتياج إلى تفاعل المستخدم كجزء من العملية. يستخدم الجهاز GetBootstrapTokenRequest
لاسترداد رمز bootstrap من خدمة إدارة الأجهزة عند الحاجة.
في الخطوة الأولى، تحدد خدمة إدارة الأجهزة ما إذا كان الجهاز يدعم رمز bootstrap باستخدام الأمر SecurityInfo
. إذا تضمنت الاستجابة BootstrapTokenRequiredForSoftwareUpdate
معينًا على صواب
، يمكن للجهاز استخدام رمز bootstrap لتخويل تحديث للبرامج.
لإنشاء رمز bootstrap، يجب أن تضيف خدمة إدارة الأجهزة com.apple.mdm.bootstraptoken
إلى المصفوفة ServerCapabilities
في ملف تعريف إدارة الأجهزة. لمزيد من المعلومات، انظر ملف تعريف إدارة الأجهزة على الموقع الإلكتروني لمطوري Apple.
بعد تلقي الجهاز لرمز bootstrap، يُنشئ الجهاز رمز bootstrap في المرة القادمة التي يقوم فيها مستخدم تم تمكين الرمز الآمن له بتسجيل الدخول. ثم يتواصل مع نقطة نهاية تسجيل الوصول الخاصة بخدمة إدارة الأجهزة ويقوم بإيداع الرمز باستخدام SetBootstrapTokenRequest
. لمزيد من المعلومات، انظر تعيين رمز Bootstrap على موقع ويب مطوري Apple.
لأحدث مواصفات التخطيط، انظر قسم إدارة أجهزة Apple بمخزن GitHub.