Mac App 發(fā)布的最后 1km

Mac App 開發(fā)完成后,在發(fā)布上線的最后 1km ,看似近在咫尺,實(shí)則坑坑致命,這不象代碼 Bug 可以用 Debug 來對(duì)付,最后 1km 只能用地圖來畫出路線,繞過那些坑。

本文介紹如何使用開發(fā)者帳號(hào)簽名,實(shí)現(xiàn) mac App 在 mac App Store 以及線下的兩種發(fā)布。使用開發(fā)者帳號(hào)進(jìn)行發(fā)布,可以向用戶提供更值得信賴的安全性體驗(yàn),免去了安裝更改安全級(jí)別的麻燻煩,用起來更放心。不使用開發(fā)者帳號(hào)當(dāng)然也可以發(fā)布和傳播,不在本文討論范圍之內(nèi)。

證書和許可

開發(fā)者帳號(hào)有兩種配置文件,證書和許可,這兩種文件又有各不同的若干子類型,還經(jīng)常失效需要重新配置,因此常常被搞得暈頭轉(zhuǎn)向。

先說證書:好吧,先來認(rèn)識(shí)下證書家族,以下只列出常用的幾種。

*? Developer Certificate

? ? ? -? Mac Development [1] :這個(gè)只用來開發(fā),Debug,不是正式發(fā)布的版本。

*? Production Certificate

? ? ? -? Mac App Store

? ? ? ? ? ? 。? Mac App Distribution [2] :這個(gè)用于 Xcode 自己把 .app 文件上傳到 Mac App Store 。

? ? ? ? ? ? 。Mac Installer Distribution :這個(gè)本人沒有用過,從描述上看,這是用于開發(fā)者自己把 .app 文件打包成 .pkg 文件,再用 Xcode 自帶的 App Application Loader 上傳到 Mac App Store ,這可能是有的 App 需要打包(加上許可協(xié)議等)后在 Mac App Store 發(fā)布,個(gè)人認(rèn)為,一般的 App 把 .app 文件上傳到 Mac App Store 就足夠了。

? ? ? -? Developer ID

? ? ? ? ? ? 。Developer ID Application [3]:這個(gè)用于開發(fā)者使用開發(fā)者帳號(hào)簽名,導(dǎo)出一個(gè)線下發(fā)布版本的 .app 文件,但是由于脫離了蘋果的 Mac App Store ,還是加上許可協(xié)議打包成 .pkg 文件再發(fā)布比較好,給用戶一個(gè)決定是否安裝的機(jī)會(huì)。這就要用到下面這個(gè):

? ? ? ? ? ? 。Developer ID Installer [4]:用于開發(fā)者打包,同時(shí)加上開發(fā)者帳號(hào)簽名,打包工具在下面介紹。

再來說許可,和上面的證書對(duì)應(yīng)有三種:

*? Develment

? ? ? -? Mac App Develoment [5]:這將包含 [1]

*? Distribution

? ? ? -? Mac App Store [6]:這將包含 [2]

? ? ? -? Developer ID [7]:這將包含 [3]

上面這些文件,需要按照提示下載使用。注意:

*? 生成證書的時(shí)候,需要從 Mac 電腦的鑰匙串生成一個(gè)文件并上傳。

*? 下載許可后,先安裝,然后到 Xcode->Preference->detail,找到這個(gè)許可,如果其狀態(tài)是需要下載,就點(diǎn)擊下載。

Xcode 設(shè)置

以 Xcode 8.2.1 為例,首先看在 Mac App Store 上線的設(shè)置。在 Xcode->Target->General->Signing(Release) 那里,許可 Provisioning Profile 選擇 [6] ,這時(shí)下面的 Signing Certificate 會(huì)自動(dòng)匹配(3rd Party Mac Developer Appliction)。后面的過程也捎帶講一下吧:Xcode->Toolbar->Product->Archive,編譯完成后,選中文件,首先做下 Validate,沒問題就可以 Update to App Store 了。如果找過去編譯的文件,在這里:Xcode->Window->Organizer。

在線下發(fā)布的設(shè)置是這樣的:在 Xcode->Target->General->Signing(Release) 那里,許可 Provisioning Profile 選擇 [7] ,這時(shí)下面的 Signing Certificate 會(huì)自動(dòng)匹配(Developer ID Application)。編譯后的過程有所不同:編譯完成后,選中文件 Export,這時(shí) Xcode 會(huì)詢問導(dǎo)出方式,共有四種,選第二種:Export a Develepor-ID Singned Application,保存?zhèn)溆?[8]。

簽名打包

線下發(fā)布才需要簽名打包。其機(jī)制是用證書 [4] 對(duì) .pkg 文件簽名。曾經(jīng)找了好幾個(gè)第三方的簽名打包工具,都不能用 [4] 簽名,最后還是找到了蘋果自家的工具:PakageMaker 。這個(gè)工具隱藏特別深,雖然是一個(gè) 2012 年發(fā)布的一個(gè)工具,但仍然不可替代。傳送門:

https://download.developer.apple.com/Developer_Tools/auxiliary_tools_for_xcode__late_july_2012/xcode44auxtools6938114a.dmg

在 PakageMaker 里,選擇需要打包的文件 [8],并編輯其他元素,這個(gè)就不再細(xì)說了。

在 PakageMaker->Project->Edit Certificate 那里,可以從鑰匙串中選取 [4] 簽名。簽名打包的 .pkg 文件,在其右上角可以查看開發(fā)者的簽名信息。

補(bǔ)充:文件 [8] 一定要用英文名,不要用中文,否則打包后安裝時(shí),有時(shí)會(huì)出現(xiàn)錯(cuò)誤:”安裝器無法安裝該軟件,因?yàn)檎也坏揭惭b的軟件”。

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

相關(guān)閱讀更多精彩內(nèi)容

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