
기기 관리를 사용하여 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
선언을 기기에 전송하여 각 상태 리포트를 구독해야 합니다. 기기는 ManagementStatusSubscriptions
선언이 활성화될 때, 구독 항목의 상태가 변경될 때, 그리고 24시간마다 StatusReport
를 기기 관리 서비스에 전송합니다.
운영 체제 버전 및 소프트웨어 업데이트 상태를 모니터링하기 위해 기기 관리 서비스는 다음 상태 리포트를 구독할 수 있습니다.
상태 리포트 | 설명 |
---|---|
| 기기에 설치된 운영 체제의 빌드 버전입니다(예: 21E219). |
| 기기에서 사용 중인 운영 체제의 버전입니다(예: 17.4). |
| 운영 체제의 빌드 및 기기에서 사용 중인 신속 보안 대응 버전입니다(예: 20A123a 또는 20F75c). |
| 기기에서 사용 중인 운영 체제 신속 보안 대응의 버전입니다(예: a). |
| 기기에서 보류 중인 소프트웨어 업데이트의 빌드 및 운영 체제 버전을 포함하는 사전입니다. |
| 소프트웨어 업데이트 설치 상태이며 다음과 같은 값이 있습니다.
|
| 보류 중인 소프트웨어 업데이트의 원인에 대한 세부사항이 있는 사전입니다.
|
| 소프트웨어 업데이트 실패에 관한 세부사항입니다. 세부사항에는 소프트웨어 업데이트 실패 횟수, 마지막 실패 타임스탬프 및 실패 이유가 포함됩니다. |
| 기기의 등록된 베타 프로그램 이름이며, 또는 등록된 베타 프로그램이 없을 경우 빈 문자열입니다. |
다른 리포트 외에도, 기기 관리 서비스는 관리자가 지원 목적으로 softwareupdate.install-reason
을 사용할 수 있도록 하고 업데이트가 어떻게 발생하는지에 대한 추가적인 통찰력을 제공할 수 있습니다. 이 사전을 사용해 사용자가 업데이트를 시작했는지, 업데이트가 자동으로 실행되었는지 또는 소프트웨어 업데이트 강제 적용 선언에 의해 시작되었는지 판단할 수 있습니다.
등록 중에 특정 최소 소프트웨어 버전 요구하기
기기가 이 기능을 지원하는 경우, 기기가 ‘설정 지원’에서 관리 구성을 감지할 때 기기 관리 서비스에 보내는 초기 HTTP POST
요청에서 MachineInfo
데이터에 True로 설정된 MDM_CAN_REQUEST_SOFTWARE_UPDATE
키가 반환됩니다. 자세한 정보는 Apple 기기 관리 GitHub 저장소에서 MachineInfo yaml 파일의 내용을 참조하십시오.
또한 기기는 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
요청에 대한 응답으로 등록 프로필을 반환합니다.기기 관리 서비스가 소프트웨어 업데이트를 강제 적용하기로 결정한 경우, 403 상태 코드가 있는
HTTP
응답을 반환해야 하며, 응답 본문에 JSON 또는 XML 객체가 포함되어 있어야 합니다. (HTTP Content-Type
응답 헤더는application/json
또는application/xml
로 각각 설정되어 있어야 합니다.)
이 오류 응답이 수신되면 기기는 지정된 버전으로 업데이트를 시도합니다. 업데이트가 성공하면 기기가 재시동되어 사용자는 설정 지원을 다시 진행해야 합니다. 기기에서 기기 관리 서비스로 보내는 다음 MachineInfo POST
요청에는 업데이트된 운영 체제 버전이 표시되며, 서비스는 이제 등록을 진행할 수 있습니다. 업데이트가 실패하면, 오류 메시지가 사용자에게 표시되며 원격 관리 패널이 설정 지원에 다시 나타납니다.
response
스키마가 다음 표에 정의되어 있습니다.
키 | 유형 | 필수사항 | 설명 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| 문자열 | 예 |
| ||||||||
| 문자열 | 아니요 | 오류에 대한 설명입니다. 로깅 목적으로만 사용됩니다. | ||||||||
| 문자열 | 아니요 | 사용자에게 표시하기에 적합한 오류 설명입니다. | ||||||||
| 사전 | 예 | 소프트웨어 업데이트를 지정하는 추가 데이터입니다. |
details
사전 스키마가 여기 정의되어 있습니다.
키 | 유형 | 필수사항 | 설명 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| 문자열 | 예 | 기기를 업데이트해야 하는 대상 운영 체제 버전입니다. | ||||||||
| 문자열 | 아니요 | 기기를 업데이트해야 하는 대상 빌드 버전입니다. | ||||||||
| 사전 | 아니요 | 기기가 베타 프로그램에 등록되며, 베타 프로그램 운영 체제 버전에 대한 강제 적용 소프트웨어 업데이트가 허용됩니다. 강제 적용 소프트웨어 업데이트가 완료된 이후에도 기기는 베타 프로그램에 남아 있습니다. |
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 기기에서 신속 보안 대응을 구성하는 데 사용될 수도 있습니다. 자세한 정보는 iOS, iPadOS 및 macOS용 RapidSecurityResponse 사전 키의 내용을 참조하십시오.
기기 관리를 사용하여 소프트웨어 업데이트 연기하기
1일에서 90일까지 소프트웨어 업데이트 및 업그레이드 연기는 감독 중인 iPhone, iPad 및 Mac 기기에서 com.apple.configuration.softwareupdate.settings
선언을 사용하여 완료됩니다.
구성된 연기는 릴리즈가 공개적으로 사용 가능해진 후 조직이 사용자에게 릴리즈를 제공하기 전까지의 일수를 정의합니다. 구성된 연기와는 관계없이, 기기 관리 서비스는 여전히 관리형 기기에 특정 소프트웨어 업데이트, 업그레이드 또는 신속 보안 대응을 강제 적용할 수 있습니다. 자세한 정보는 iOS, iPadOS 및 tvOS용 Deferrals 사전 키 및 macOS용 Deferrals 사전 키의 내용을 참조하십시오.
참고: 소프트웨어 업데이트를 연기하면 해당 버전에 의존하는 모든 신속 보안 대응도 연기됩니다.
기기 관리를 사용하여 소프트웨어 업데이트 강제 적용하기
기기 관리 서비스는 기기 등록 또는 자동 기기 등록을 사용하여 등록하는 기기에 특정 시간까지 소프트웨어 업데이트를 강제 적용하기 위해 com.apple.configuration.softwareupdate.enforcement.specific
선언을 적용할 수 있습니다.
구성이 현재 기기 버전과 동일하거나 더 이전의 운영 체제 또는 빌드 버전을 지정하는 기기에 적용되는 경우, 기기는 상태 리포트에서 오류를 반환합니다.
현재 기기의 버전보다 더 최신의 운영 체제 또는 빌드 버전이 있는 여러 구성이 있는 경우, 대상 날짜와 시간이 가장 빠른 구성이 먼저 처리되며, 다른 구성은 대기 상태로 남아 있습니다. 기기가 새로운 버전으로 업데이트되면, 구성 세트가 다시 처리되어 다음에 처리될 구성이 결정됩니다. 이 과정의 일부로 기기는 현재 버전보다 이전 또는 동일한 버전을 지정하는 기존 구성을 무시합니다.
기기 관리 서비스가 TargetOSVersion
만 지정한 경우 운영 체제는 사용 가능한 모든 신속 보안 대응을 자동으로 설치합니다. 기기 관리 서비스는 특정 릴리즈 또는 신속 보안 대응을 대상으로 지정하기 위해 추가 버전 ID를 포함한 빌드를 지정하는 것 외에도 TargetBuildVersion
키를 사용할 수 있습니다.
자세한 내용은 소프트웨어 업데이트 강제 적용 사전 키의 내용을 참조하십시오.
알림
키는 기본 알림 동작을 변경하여 강제 적용 시간 1시간 전에만 알림을 표시하고 재시동 카운트다운을 보여줍니다. 자세한 정보는 알림 키의 내용을 참조하십시오.
Apple Silicon이 탑재된 Mac 컴퓨터에 대해 Bootstrap Token 사용하기
기기 관리 서비스는 Apple Silicon이 탑재된 감독 중인 Mac 컴퓨터에 대한 소프트웨어 업데이트 강제 적용을 인증하기 위해 Bootstrap Token을 요청하고 에스크로할 수 있습니다. 이를 통해 완전히 원할한 소프트웨어 업데이트 경험이 가능하며, 진행 과정에서 사용자 상호 작용도 필요하지 않게 됩니다. 필요한 경우, 기기는 GetBootstrapTokenRequest
를 사용하여 기기 관리 서비스에서 Bootstrap Token을 가져옵니다.
첫 번째 단계에서 기기 관리 서비스는 SecurityInfo
명령을 사용하여 기기가 Bootstrap Token을 지원하는지 여부를 확인합니다. 응답에 BootstrapTokenRequiredForSoftwareUpdate
가 True
로 설정되어 포함되어 있는 경우, 기기는 소프트웨어 업데이트를 인증하기 위해 Bootstrap Token을 사용할 수 있습니다.
Bootstrap Token을 생성하려면, 기기 관리 서비스는 기기 관리 프로필에서 com.apple.mdm.bootstraptoken
을 ServerCapabilities
배열에 추가해야 합니다. 자세한 내용은 Apple Developer 웹사이트에서 기기 관리 프로필을 참조하십시오.
기기로 Bootstrap Token을 가져오면, 다음에 Secure Token 활성화된 사용자가 로그인하면 기기에서 Bootstrap Token을 생성합니다. 그런 다음 기기는 기기 관리 서비스의 체크인 엔드포인트에 접근하여 SetBootstrapTokenRequest
를 사용하여 토큰을 에스크로합니다. 자세한 정보는 Apple Developer 웹사이트에서 Set Bootstrap Token을 참조하십시오.
최신 스키마 사양에 대한 자세한 정보는 Apple device management GitHub repository를 참조하십시오.