美文网首页
Mac OSX MDM 分发app

Mac OSX MDM 分发app

作者: 空空小僧 | 来源:发表于2018-05-07 14:39 被阅读0次

    在mac分发app中,根据MDM官方文档这个地方的指令描述及MDM Protocol Extensions模块中的macOS Extensions,可以发现iOS设备和OSX设备在mdm上的区别,个人整理了一下:

    1.iOS系统

    对于iOS设备来说,一个设备就是一个唯一标示,所有的指令及描述文件,针对的都是这台设备,基本上可以理解为一台设备就是一个用户,单一用户===单一设备,因为我们的设备不同于OSX,可以创建多个用户,这是前提

    2.OSX系统

    单一设备 != 单一用户,可能多个设备存在多个用户,所以我们在mac安装checkin的描述文件时, 设备checkin上报token的时候,会上报对此,分别对应设备的token和用户的token,对于我们的一些指令,用户token是不支持的,一旦下发,会显示指令受限制,错误如下提示:

    <dict>
       <key>ErrorCode</key>
       <integer>71</integer>
       <key>ErrorDomain</key>
       <string>MDMClientError</string>
       <key>LocalizedDescription</key>
       <string><![CDATA[Command received for: <User: 501> but restricted to: <Device> <MDMClientError:71>]]></string>
      </dict>
      
    

    3.分发app

    在分发app的指令中,iOS系统正常使用,但是对于OSX,OSX文档描述的方法 在实践中未成功,其中文档中提到了将App格式转化为pkg格式,并且签名取md5值的过程中,官方文档推荐的命令为:

    //先将app文件转化为分发使用的pkg文件
    sudo pkgbuild —component ~/Desktop/MyApp.app —install-location /Applications
    —sign myserver.myenterprise.com /tmp/myPackage.pkg
    //将pkg文件按照10M大小转换
    $ split -b 10485760 myPackage.pkg myPackage.pkg.
    //对所有的10M文件块取md5值
    $ md5 -r myPackage.pkg.* 
    

    但是我们安装文档的要求,处理失败,然后进行了查询其他命令,并且安装了苹果自身的OS Server使用对比文件,最终发现的成功的方式及使用的命令为:
    使用命令productbuild而不是命令pkgbuild,对比2个命令处理完的pkg包,其中productbuild的安装包,

    //解压方式1:
    xar -xf Setup.pkg
    cat qdskyDrive.pkg/Payload | cpio -i
    //解压方式2  2选1
    pkgutil --expand qdskyDrive.pkg ~/Desktop/12(此文件夹名自己写一个不存在的 系统会给创建一个)
    

    使用pkgbuild命令解压结果:


    image.png

    三个文件,分别是
    1.Bom文件
    2.PackageInfo文件
    3.Payload文件
    具体作用还没分分析

    • 使用productBuild命令解压如下:


      image.png

    具体区别再分析一下,尝试对立面的pkg再次解压,解压失败(Could not open package for expansion:///***.pkg),然后就可以安装到设备上

    相关文章

      网友评论

          本文标题:Mac OSX MDM 分发app

          本文链接:https://www.haomeiwen.com/subject/muimrftx.html