Mac OSX MDM 分發(fā)app

在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é)果:


image.png

三個文件,分別是
1.Bom文件
2.PackageInfo文件
3.Payload文件
具體作用還沒分分析

  • 使用productBuild命令解壓如下:


    image.png

具體區(qū)別再分析一下,嘗試對立面的pkg再次解壓,解壓失敗(Could not open package for expansion:///***.pkg),然后就可以安裝到設(shè)備上

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容