在mac分發(fā)app中,根據(jù)MDM官方文檔這個地方的指令描述及MDM Protocol Extensions模塊中的macOS Extensions,可以發(fā)現(xiàn)iOS設(shè)備和OSX設(shè)備在mdm上的區(qū)別,個人整理了一下:
1.iOS系統(tǒng)
對于iOS設(shè)備來說,一個設(shè)備就是一個唯一標(biāo)示,所有的指令及描述文件,針對的都是這臺設(shè)備,基本上可以理解為一臺設(shè)備就是一個用戶,單一用戶===單一設(shè)備,因為我們的設(shè)備不同于OSX,可以創(chuàng)建多個用戶,這是前提
2.OSX系統(tǒng)
單一設(shè)備 != 單一用戶,可能多個設(shè)備存在多個用戶,所以我們在mac安裝checkin的描述文件時, 設(shè)備checkin上報token的時候,會上報對此,分別對應(yīng)設(shè)備的token和用戶的token,對于我們的一些指令,用戶token是不支持的,一旦下發(fā),會顯示指令受限制,錯誤如下提示:
<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.分發(fā)app
在分發(fā)app的指令中,iOS系統(tǒng)正常使用,但是對于OSX,OSX文檔描述的方法 在實踐中未成功,其中文檔中提到了將App格式轉(zhuǎn)化為pkg格式,并且簽名取md5值的過程中,官方文檔推薦的命令為:
//先將app文件轉(zhuǎn)化為分發(fā)使用的pkg文件
sudo pkgbuild —component ~/Desktop/MyApp.app —install-location /Applications
—sign myserver.myenterprise.com /tmp/myPackage.pkg
//將pkg文件按照10M大小轉(zhuǎn)換
$ split -b 10485760 myPackage.pkg myPackage.pkg.
//對所有的10M文件塊取md5值
$ md5 -r myPackage.pkg.*
但是我們安裝文檔的要求,處理失敗,然后進行了查詢其他命令,并且安裝了蘋果自身的OS Server使用對比文件,最終發(fā)現(xiàn)的成功的方式及使用的命令為:
使用命令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(此文件夾名自己寫一個不存在的 系統(tǒng)會給創(chuàng)建一個)
使用pkgbuild命令解壓結(jié)果:

三個文件,分別是
1.Bom文件
2.PackageInfo文件
3.Payload文件
具體作用還沒分分析
-
使用productBuild命令解壓如下:
image.png
具體區(qū)別再分析一下,嘗試對立面的pkg再次解壓,解壓失敗(Could not open package for expansion:///***.pkg),然后就可以安裝到設(shè)備上
