
Apple aygıtlarına yazılım güncellemelerini dağıtmak için aygıt yönetimini kullanma
Bildirim temelli aygıt yönetimi, geleceğin Apple aygıt yönetimidir. Aygıtın ayarları eşzamansız olarak uygulamasını ve sürekli yoklama olmadan aygıt yönetimi servisine durum bildirmesini sağlar. Bu, performans ve ölçeklenebilirlik açısından idealdir ve aynı zamanda yazılım güncellemelerini yönetmek için ileri düzey bir yaklaşım sunar. Bildirim temelli aygıt yönetimi, değerler ve konfigürasyonlar değiştikçe aygıtlardan proaktif durum raporları sunar. Böylece aygıt yönetimi servisi, düzenli sorgulamalar yapması gerekmeden aygıtların güncel bir görünümüne sahip olur.
Aygıt yönetimi servisi, güncellemeyi başlatmak için aygıta bir yazılım güncelleme komutu göndermek yerine istenen işletim sistemi sürümü durumunu bildirir ve bu duruma ulaşma görevini aygıtın kendisine verir. Bu, yönetilen yazılım güncelleme sürecinin daha güçlü ve kullanıcı şeffaflığının daha yüksek olmasını sağlar.
Yazılım güncelleme bildirimlerinden yararlanmanın önemi
Aygıt yönetimi servisleri, mümkün olduğunca yazılım güncelleme bildirimlerinden yararlanmalıdır. Ancak eski yazılım güncelleme komutları ve profilleri hâlâ kullanılabilir ve desteklenir. Bunlar, şu değişikliklerle yazılım güncelleme bildirimleriyle birlikte çalışabilir:
Bildirim tarafından tanımlanmış ertelemeler, sınırlama ile ayarlanmış ertelemelere göre önceliklidir.
macOS’te bildirim tarafından uygulanmış otomatik yazılım güncelleme ayarları, konfigürasyon profiliyle sağlanmış otomatik güncelleme ayarlarına göre önceliklidir.
İşletim sisteminin bildirim temelli aygıt yönetimi kullanılarak ayarladığı bir yazılım güncelleme bekliyorsa istemci bazı aygıt yönetimi komutlarını işleyemez ve aygıtta etkin bir bildirim olduğuna dair, aşağıdaki tabloda gösterildiği şekilde hatalar döndürür:
Aygıt yönetimi komutu | Sonuç | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Limited: Mac bilgisayarları için yönetilmeyen, işletim sistemi tabanlı güncellemeler, komut yanıtında gözükebilir (örneğin Xcode’da veya komut satırı araçlarında). | ||||||||||
| Aygıt bir | ||||||||||
| Aygıt boş bir durum dizisi döndürür. |
Apple Yazılım Arama Servisi’ni kullanma
Apple Yazılım Arama Servisi (https://gdmf.apple.com/v2/pmv adresinde bulunur), herkes tarafından kullanılabilir güncellemelerin, yükseltmelerin ve Hızlı Güvenlik Yanıtları’nın bir listesini edinmek için resmi kaynaktır. Bir aygıt yönetimi servisinin sürümleri Apple tarafından yayınlanır yayınlanmaz sorgulamasına ve her bir donanım modeli için uygulanabilirliği zamanında ve doğru bir davranışla hesaplamasına olanak tanır.
JSON yanıtı, kullanılabilir yazılım sürümlerinin üç listesini içerir:
PublicAssetSets: Bu liste, güncellemeyi veya yükseltmeyi denerse genel olarak kullanılabilen son sürümleri içerir.
AssetSets: Bu liste
PublicAssetSets
’in bir alt kümesidir ve aygıt yönetimi servislerinin aygıtlara iletebileceği tüm sürümleri içerir.PublicRapidSecurityResponses: Bu liste, Apple aygıtları için şu an kullanılabilen Hızlı Güvenlik Yanıtları sürümlerini içerir.
Listedeki her bir öğe, işletim sisteminin ProductVersion
numarasını, Build
bilgisini, sürümün yayınlandığı PostingDate
tarihini, ExpirationDate
bilgisini ve bu sürüm için SupportedDevices
listesini içerir. Aygıt listesi, aygıttaki ProductName
değeri ile eşleşir, bunlar bir DeviceInformation
yanıtında, ilk Authenticate
isteğinde ya da aygıt kaydolmayı denediğinde MachineInfo
bilgisinde döndürülür.
Genel olarak gönderme tarihinden sonra 180 gün olarak ayarlanan son kullanma tarihi, güncellemenin imzalanmasının sona erdiği tarihi belirtir. Süresi dolan güncelleme artık aygıtlara yüklenemez. Sonraki güncellemeler çıktığında, önceki güncellemelerin son kullanma tarihleri güncellenmiş olabilir. Son kullanma tarihi verilmemişse güncellemenin süresi henüz dolmamıştır. Bir güncellemenin süresi yalnızca geçmişte sürüme ait bir son kullanma tarihi varsa sona erer.
Öğeler, işletim sistemi platformu tarafından şu anahtarlar kullanılarak gruplanır:
iOS
(iPadOS, tvOS ve watchOS’i içerir)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"
]
},
Hangi sürümlerin aygıtın şu anki işletim sistemi sürümünden daha yeni olduğunu ve belirli bir aygıta uygulanabilir olduğunu belirlemek için ürün sürümü listesini kullanın. Sonra olası işletim sistemi güncelleme adayları olarak sürüm listesini aygıt yönetimi servisi yöneticisine verin.
Aygıt yönetimi servisine durum raporu gönderme
Durum öğeleri değiştikçe güncelleme alınması için sunucunun aygıta bir ManagementStatusSubscriptions
bildirimi göndererek her bir durum raporuna abone olması gerekir. Aygıt da ManagementStatusSubscriptions
bildirimi etkin hâle geldiğinde, abone olunmuş öğenin durumu değiştiğinde ve her 24 saatte bir aygıt yönetimi servisine bir StatusReport
gönderir.
Aygıt yönetimi servisi, işletim sistemi sürümlerini ve yazılım güncelleme durumunu izlemek amacıyla aşağıdaki durum raporlarına abone olmak isteyebilir:
Durum raporu | Açıklama |
---|---|
| Aygıttaki işletim sisteminin geliştirme sürümü (örneğin 21E219). |
| Aygıtta kullanılan işletim sistemi sürümü (örneğin 17.4). |
| Aygıtta kullanılan işletim sistemi geliştirme sürümü ve Hızlı Güvenlik Yanıtı sürümü (örneğin 20A123a veya 20F75c). |
| Aygıtta kullanılan işletim sistemi Hızlı Güvenlik Yanıtı sürümü (örneğin a). |
| Aygıtta bekleyen yazılım güncellemenin geliştirme ve işletim sistemi sürümlerini içeren bir sözlük. |
| Yazılım güncelleme yükleme durumu şu değerlere sahip olabilir:
|
| Bekleyen yazılım güncellemenin nedeniyle ilgili ayrıntıları içeren bir sözlük.
|
| Yazılım güncelleme hatasıyla ilgili ayrıntılar. Ayrıntılar arasında yazılım güncellemenin kaç kez başarısız olduğu, son hatanın zaman damgası ve hata nedeni sayılabilir. |
| Aygıtın kayıtlı olduğu beta programı adı veya kayıtlı bir beta programı yoksa boş bir dizgi. |
Aygıt yönetimi servisleri, destek amacıyla ve güncellemenin nasıl gerçekleştiğiyle ilgili ek ayrıntılar sunmak için diğer raporlara ek olarak softwareupdate.install-reason
öğesini de yöneticilerin kullanımına sunmak isteyebilir. Bu sözlüğü kullanarak güncellemenin kullanıcı tarafından mı başlatıldığını, otomatik olarak mı gerçekleştiğini veya bir yazılım güncelleme uygulatma bildirimi tarafından mı başlatıldığını belirleyebilirsiniz.
Kayıt sırasında belirli bir minimum yazılım sürümünü isteme
Aygıt bu özelliği destekliyorsa ve Ayarlama Yardımcısı’nda bir yönetim konfigürasyonu algılarsa aygıt yönetimi servisine gönderdiği ilk HTTP POST
isteğinde bulunan MachineInfo
verisinde, True (Doğru) olarak ayarlanmış bir MDM_CAN_REQUEST_SOFTWARE_UPDATE
anahtarı döndürür. Daha fazla bilgi için Apple aygıt yönetimi GitHub deposu’ndaki MachineInfo yaml dosyası konusuna bakın.
Ayrıca, aygıtlar MachineInfo
verilerinde aşağıdaki alanları da sunar (tümü dizgi):
Anahtar | Desteklenen minimum işletim sistemi sürümleri | Açıklama | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | Aygıtta yüklü geliştirme sürümü (örneğin 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | Aygıtta yüklü işletim sistemi sürümü (örneğin 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | Aygıtın Hızlı Güvenlik Yanıtı sürümü (varsa). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | Aygıtın Hızlı Güvenlik Yanıtı sürüm eki (varsa). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | Apple Yazılım Arama Servisi’nde kullanılabilir işletim sistemi güncellemelerini araştırmak için kullanılan aygıt modeli tanıtıcısı. |
Aygıt yönetimi servisi, sağlanan bilgilere göre aygıta güncellemeyi uygulatıp uygulatmayacağına karar verebilir.
Aygıt yönetimi servisi, bir yazılım güncellemeyi uygulatmamayı seçerse
HTTP POST
isteğine yanıt olarak, kaydın ilerlemesine izin vermek için yaptığı gibi, sadece kayıt profilini döndürür.Aygıt yönetimi servisi, bir yazılım güncellemesini uygulatmayı seçerse 403 durum koduna sahip bir
HTTP
yanıtı döndürmeli ve yanıt gövdesinde bir JSON veya XML nesnesi içermelidir (HTTP Content-Type
yanıt başlığı sırasıylaapplication/json
ya daapplication/xml
olarak ayarlanmalıdır).
Aygıt, bu hata yanıtını aldıktan sonra belirtilen sürüme güncellemeye çalışır. Güncelleme başarılı olursa aygıt yeniden başlatılır ve kullanıcının Ayarlama Yardımcısı adımlarını tekrar tamamlaması gerekir. Aygıttan aygıt yönetimi servisine sonraki MachineInfo POST
isteği, güncellenmiş işletim sistemi sürümünü gösterir; servis de kayda devam edebilir. Güncelleme başarısız olursa kullanıcıya bir mesaj gösterilir ve Ayarlama Yardımcısı’nda Uzaktan Yönetim bölümü yeniden görünür.
response
şeması, aşağıdaki tabloda tanımlanmıştır.
Anahtar | Tür | Gerekli | Açıklama | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Dizgi | Evet |
| ||||||||
| Dizgi | Hayır | Hata açıklaması. Yalnızca günlük tutma amacıyla kullanılır. | ||||||||
| Dizgi | Hayır | Kullanıcıya görüntüleme için uygun hata açıklaması. | ||||||||
| Sözlük | Evet | Yazılım güncellemeyi belirten ek veriler. |
details
sözlük şeması burada tanımlanmıştır.
Anahtar | Tür | Gerekli | Açıklama | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Dizgi | Evet | Aygıtın güncellenmesi gereken işletim sistemi sürümü. | ||||||||
| Dizgi | Hayır | Aygıtın güncellenmesi gereken geliştirme sürümü. | ||||||||
| Sözlük | Hayır | Aygıt, beta programına kaydolur ve yazılım güncellemelerinin beta programı işletim sistemi sürümlerine uygulatılmasına izin verilir. Aygıt, uygulatılan yazılım güncelleme tamamlandıktan sonra beta programında kalır. |
Yalnızca OSVersion
belirtilmişse aygıt, bu sürüm için kullanılabilen tüm Hızlı Güvenlik Yanıtları’nı otomatik olarak indirip yükler. Belirli bir geliştirme sürümünün veya ek sürümün gerekmesi durumunda aygıt yönetimi servisi, isteğe bağlı olarak BuildVersion
bilgisini de belirtebilir. Örneğin, bir aygıtın kayıttan önce iOS 16.5.1(a) çalıştırıyor olmasını zorunlu kılmak için (iOS 16.5.1(c) kullanılabilir olsa bile) aygıt yönetimi servisinin OSVersion
’ı iOS 16.5.1
ve BuildVersion
’ı 20F770750b
olarak ayarlaması gerekir.
Önemli: macOS 15’ten önce, yalnızca PublicAssetSets
ve PublicRapidSecurityResponses
listelerindeki sürümler belirtilebilir. macOS 15’te AssetSets
öğeleri de kullanılabilir.
Yazılım güncellemeleri için aygıt yönetimi ayarları
com.apple.configuration.softwareupdate.settings
bildirimi (iOS 18’de, iPadOS 18’de, macOS 15’te, tvOS 18.4’te veya daha yenisinde kullanılabilen), yazılım güncelleme davranışının çeşitli yönlerini ayarlamak için kullanılabilecek sözlüklerden oluşur.
Aygıt yönetimi servisi birden fazla bildirimde farklı anahtarlar dağıttıktan sonra bir aygıt, tüm etkin yazılım güncelleme ayarları bildirimlerinin ayarlarını birleştirir. Aynı anahtarın birden fazla bildirim tarafından ayarlanması durumunda, birleştirme davranışı o anahtara bağlıdır ve aşağıdaki tablolarda özetlenmiştir.
Aygıt yönetimi servisi ile otomatik yazılım güncellemelerini ayarlama
com.apple.configuration.softwareupdate.settings
bildirimi, denetlenip yönetilen iPhone, iPad, Apple TV ve Mac aygıtlarında otomatik yazılım güncelleme davranışını tanımlamaya yönelik bir sözlük sunar. Daha fazla bilgi için AutomaticActions sözlük anahtarları konusuna bakın.
Aygıt yönetimi servisi, Hızlı Güvenlik Yanıtları’nı nasıl işler?
Hızlı Güvenlik Yanıtları, her zaman Hızlı Güvenlik Yanıtı’nın taban sürümü hâline gelen, işletim sisteminin en son güncellemesine uygulanır. Örneğin iPhone’da yüklü işletim sistemi sürümü iOS 17.2 ise 17.2 (a) ek güncellemesi (varsa) uygulanır. iOS 18’de, iPadOS 18’de ve macOS 15’te, yazılım güncellemenin mevcut Hızlı Güvenlik Yanıtları’nı içermesine olanak tanıyan birleştirilmiş güncellemeler kullanıma sunulmuştur.
iOS 18, iPadOS 18 ve macOS 15 öncesinde, aygıt yönetimi servisinin belirli bir ek sürümün olduğundan emin olmak için iki yazılım güncellemeyi başlatması gerekebilir. Öncelikle, aygıt ek güncellemenin taban sürümünü kullanmıyorsa aygıtı o taban sürüme güncellemelidir (örneğin iOS 17.1’i iOS 17.2’ye). Daha sonra taban sürümünü ek sürüme güncellemelidir (örneğin, iOS 17.2’yi iOS 17.2 (a) sürümüne).
iOS 18’de, iPadOS 18’de ve macOS 15’te aygıt yönetimi servisi şunlardan birini belirtebilir:
İşletim sistemi sürümü (kullanılabilir Hızlı Güvenlik Yanıtları’nı otomatik olarak yükleyen)
Ek geliştirme sürümü (aygıtın sürecin bir parçası olarak taban sürümünde gerekli güncellemeyi gerçekleştirmesini sağlayan)
Bu iki yaklaşım, yazılım güncelleme uygulatma konfigürasyonu ve Otomatik Aygıt Kaydı sırasında zorunlu kılınan minimum sürüm için geçerlidir.
com.apple.configuration.softwareupdate.settings
bildirimi, denetlenip yönetilen iPhone, iPad ve Mac aygıtlarında Hızlı Güvenlik Yanıtı davranışını ayarlamak için de kullanılabilir. Daha fazla bilgi için iOS, iPadOS ve macOS için RapidSecurityResponse sözlük anahtarları konusuna bakın.
Aygıt yönetimi servisi ile yazılım güncellemesini erteleme
Yazılım güncellemeyi veya yükseltmeyi 1 ila 90 gün erteleme, denetlenip yönetilen iPhone, iPad ve Mac aygıtlarında com.apple.configuration.softwareupdate.settings
bildirimi kullanılarak yapılır.
Ayarlanmış bir erteleme, bir sürümün bir kuruluş tarafından herkesin kullanımına sunulmasından kaç gün sonrasına kadar kullanıcılara sunulmayacağını tanımlar. Aygıt yönetimi servisi, ayarlanmış bir ertelemeden bağımsız olarak yönetilen aygıtlarda belirli bir yazılım güncellemeyi, yükseltmeyi veya Hızlı Güvenlik Yanıtı’nı hâlâ uygulatabilir. Daha fazla bilgi için iOS, iPadOS ve tvOS için Deferrals sözlük anahtarları ve macOS için Deferrals sözlük anahtarları konusuna bakın.
Not: Yazılım güncellemeleri ertelendiğinde, o sürüme bağlı olan Hızlı Güvenlik Yanıtları da ertelenir.
Aygıt yönetimi servisi ile yazılım güncellemelerini uygulatma
Aygıt yönetimi servisleri, Aygıt Kaydı veya Otomatik Aygıt Kaydı kullanılarak kaydettirilen aygıtlarda bir yazılım güncellemesini belirli bir zamanda uygulatmak için com.apple.configuration.softwareupdate.enforcement.specific
bildirimini uygulayabilir.
Konfigürasyon, şu anki aygıt sürümüyle aynı veya daha eski bir işletim sistemi veya geliştirme sürümünü belirten bir aygıta uygulanırsa aygıt durum raporunda bir hata döndürür
Şu anki aygıt sürümünden daha yeni bir işletim sistemi veya geliştirme sürümüne sahip birden fazla konfigürasyon varsa en yakın hedef tarihe ve saate sahip konfigürasyon ilk önce işlenir, diğerleri sırada bırakılır. Aygıt yeni bir sürüme güncellendiğinde bir sonraki işlenecek olanı belirlemek için konfigürasyon kümeleri yeniden işlenir. Aygıt, bu işlemin bir parçası olarak, en son sürümle aynı olan veya daha eski bir sürümü belirten tüm konfigürasyonları yok sayar.
Aygıt yönetimi servisi yalnızca TargetOSVersion
anahtarını tanımlıyorsa işletim sistemi kullanılabilir Hızlı Güvenlik Yanıtlarını otomatik olarak yükler. Aygıt yönetimi servisi, belirli bir sürümü veya Hızlı Güvenlik Yanıtı’nı hedeflemek amacıyla ek sürüm tanıtıcısı da dahil olmak üzere geliştirme sürümünü belirtmeye ek olarak TargetBuildVersion
anahtarını da kullanabilir.
Daha fazla bilgi için Yazılım güncellemelerini uygulatma sözlük anahtarları konusuna bakın.
Bildirimler
Notifications anahtarı, saptanmış bildirim davranışını yalnızca uygulatma zamanından 1 saat önce bir bildirim ve yeniden başlatma geri sayımını gösterecek şekilde değiştirir. Daha fazla bilgi için Notifications anahtarı konusuna bakın.
Apple Silicon çipli Mac bilgisayarları için ön yükleme (bootstrap) jetonunu kullanma
Aygıt yönetimi servisi, denetlenip yönetilen Apple Silicon çipli Mac bilgisayarında uygulatılan yazılım güncellemeyi yetkilendirmek için bir ön yükleme (bootstrap) jetonu isteyip emanet alabilir. Bu, tamamen sorunsuz bir yazılım güncelleme deneyimi sunar ve sürecin bir parçası olarak kullanıcı etkileşimi ihtiyacını ortadan kaldırır. Aygıt, gerekli olduğunda aygıt yönetimi servisinden ön yükleme (bootstrap) jetonunu almak için bir GetBootstrapTokenRequest
kullanır.
İlk adımda, aygıt yönetimi servisi SecurityInfo
komutunu kullanarak aygıtın ön yükleme (bootstrap) jetonunu destekleyip desteklemediğini belirler. Yanıt, true
olarak ayarlanmış bir BootstrapTokenRequiredForSoftwareUpdate
içeriyorsa aygıt, yazılım güncellemeyi yetkilendirmek için bir ön yükleme (bootstrap) jetonu kullanabilir.
Aygıt yönetimi servisinin ön yükleme (bootstrap) jetonunu yaratması için aygıt yönetimi profilindeki ServerCapabilities
dizisine com.apple.mdm.bootstraptoken
anahtarını eklemesi gerekir. Daha fazla bilgi için Apple Geliştirici web sitesinde Aygıt Yönetimi Profili konusuna bakın.
Aygıt, ön yükleme (bootstrap) jetonunu aldıktan sonra, güvenli jeton özellikli bir kullanıcının bir sonraki oturum açışında bir ön yükleme (bootstrap) jetonu yaratır. Sonra da aygıt yönetimi servisinin durum denetimi uç noktasına ulaşıp bir SetBootstrapTokenRequest
kullanarak jetonu emanet eder. Daha fazla bilgi için Apple Geliştirici web sitesinde Ön Yükleme (Bootstrap) Jetonunu Ayarlama konusuna bakın.
En güncel şema özellikleri için Apple aygıt yönetimi GitHub deposu konusuna bakın.