我们正在构建一个iOS MDM服务器来管理iOS设备。
以下是将iOS设备注册到MDM服务器中涉及的步骤

  • 发送注册配置
  • 执行SCEP
  • 发送MDM服务器证书。
  • 创建APNS证书。
  • 将推送通知发送到设备。

  • 设备接收到推送通知,并与MDM服务器的“serverUrl”联系。它以如下所示的Status =“Idle”进行响应
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Status</key>
        <string>Idle</string>
        <key>UDID</key>
        <string><udid-of-device></string>
    </dict>
    </plist>
    

    响应此命令,获取设备信息的方法如下。
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
    "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
        <dict>
            <key>Command</key>
            <dict>
                <key>RequestType</key>
                <string>DeviceInformation</string>
                <key>Queries</key>
                <array>
                    <string>UDID</string>
                    <string>DeviceName</string>
                    <string>OSVersion</string>
                    <string>ModelName</string>
                    <string>IMEI</string>
                </array>
            </dict>
            <key>CommandUUID</key>
            <string>command-for-the-session</string>
        </dict>
    </plist>
    

    设备以设备信息回复,如下所示
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>CommandUUID</key>
        <string>command-for-the-session</string>
        <key>QueryResponses</key>
        <dict>
            <key>DeviceName</key>
            <string>iPhone</string>
            <key>IMEI</key>
            <string>01 353150 432467 8</string>
            <key>ModelName</key>
            <string>iPhone</string>
            <key>OSVersion</key>
            <string>7.1</string>
            <key>UDID</key>
            <string><udid-device></string>
        </dict>
        <key>Status</key>
        <string>Acknowledged</string>
        <key>UDID</key>
        <string><udid-device></string>
    </dict>
    </plist>
    

    该流程按要求工作。
    在此之后,我想终止与设备的连接,因为没有其他要发送到设备的信息。

    我的查询是在我们从设备收到该CommandUUID的有效详细信息之后,如何停止或关闭此连接。
    它会继续调用mdm服务器url,并且不会终止连接。

    我尝试发送一个空的plist来停止连接,但是没有运气。

    请帮助。

    谢谢阅读。!

    最佳答案

    设备将通过发送以下命令连续查询服务器的新命令:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>Status</key>
        <string>Idle</string>
        <key>UDID</key>
        <string><udid-of-device></string>
    </dict>
    </plist>
    

    在这种情况下,如果您没有任何命令,则应返回带有空正文的HTTP 200。这表明设备应该停止轮询,直到您发送下一个推送通知为止。

    09-10 13:30
    查看更多