Я создал запрос JSON, включающий в себя TokensResponse, следующим образом:
Код: Выделить всё
{
"TokensResponse": {
"SyncTokens": {
"DeclarationsToken": "125412312312312",
"Timestamp": "2024-05-27T12:00:00Z"
}
}
}
Я использовал Java для преобразования JSON в Base64:
Код: Выделить всё
import java.util.Base64;
public class JsonToBase64 {
public static void main(String[] args) {
String jsonString = "{\n" +
" \"TokensResponse\": {\n" +
" \"SyncTokens\": {\n" +
" \"DeclarationsToken\": \"125412312312312\",\n" +
" \"Timestamp\": \"2024-05-27T12:00:00Z\"\n" +
" }\n" +
" }\n" +
"}";
String base64Encoded = Base64.getEncoder().encodeToString(jsonString.getBytes());
System.out.println(base64Encoded);
}
}
Код: Выделить всё
ewogICJUb2tlbnNSZXNwb25zZSI6IHsKICAgICJTeW5jVG9rZW5zIjogewogICAgICAiRGVjbGFyYXRpb25zVG9rZW4iOiAiMTI1NDEyMzEyMzEyMzEyIiwKICAgICAgIlRpbWVzdGFtcCI6ICIyMDI0LTA1LTI3VDEyOjAwOjAwWiIKICAgIH0KICB9Cn0K
Я вставил сгенерированную строку в кодировке Base64 в поле данных файла Command.plist:
Код: Выделить всё
Command
RequestType
DeclarativeManagement
Data
ewogICJUb2tlbnNSZXNwb25zZSI6IHsKICAgICJTeW5jVG9rZW5zIjogewogICAgICAiRGVjbGFyYXRpb25zVG9rZW4iOiAiMTI1NDEyMzEyMzEyMzEyIiwKICAgICAgIlRpbWVzdGFtcCI6ICIyMDI0LTA1LTI3VDEyOjAwOjAwWiIKICAgIH0KICB9Cn0K
RequestRequiresNetworkTether
CommandUUID
32db01a085c04acbba04daec5f5926c7
Я отправил команду устройству через сервер MDM.
Обнаружена ошибка
Устройство вернулось следующая ошибка:
Код: Выделить всё
CommandUUID
32db01a085c04acbba04daec5f5926c7
ErrorChain
ErrorCode
1100
ErrorDomain
RMErrorDomain
LocalizedDescription
MDM request failed: Cannot refresh management channel because the sync tokens response is invalid.
Status
Error
UDID
00008020-000A59891A81002E
Подробнее здесь: https://stackoverflow.com/questions/785 ... management