[轉]Mac App distribution in App Store

Mac程序的大包上傳和iOS的有些許不一樣,由於Mac app既能夠上傳到store,也能夠不經過store供人下載。所以,code sign和provision要根據狀況(開發,release<store 仍是非store>)製做。在程序打包後,驗證程序的可行性上,也有所不一樣。下面,就將一些要點紀錄下。html

 

基本概念:xcode

1 成員的權限:app

成員仍是有三種:ide

Agent:註冊賬號的賬戶,最高權限,能夠建立developer,Mac installer,Mac App, developer ID App, Developer ID Installer證書。測試

Admin:能夠建立developer,Mac installer,Mac App證書ui

Member:只能建立developer證書debug

2 證書:code

Development:htm

 team中的成員都能建立的development證書,只要用於開發階段,通俗的說用於debug版本開發blog

Distribution:

(1) App Store:

App要放到Store上,就須要建立 Mac App 和 Mac Installer證書。 Mac App主要是用於上傳到store, installer是上傳到store前咱們模擬真實的store環境

(2) Developer ID:

Apple容許開發者自行傳播App,這就要用到developer ID的證書,也分App和installer兩種。注意,此證書只有agent才能建立,而且一個team也只有一個。

生成證書的方式和iOS下的同樣,也可根據官網的提示一步一步操做,就很少說了。

 

3system

將電腦的硬件號註冊下

 

4App IDs 和Provision

這個和iOS同樣,按網頁提示操做。provision製做好後拖到xcode中,developer provision還要安裝到電腦。 建立App ID時候,要考慮清楚是否須要iCloud,和APNS。建議把這些都配置好,再去建立provisions。不然修改了App ID後,對以前的provision會有影響。若是真的須要修改App ID,建議將舊的provisons刪除(包括電腦上和xcode裏已安裝的文件),再安裝新的provision。另外,developer provison能夠安裝在電腦上(由於含有system信息),production的只能安裝到xcode中。

順便貼一下provison和ID,證書,system間的關係圖:

另外,說明一下,有時候下載完證書並添加後,在keychain裏會沒有key,說明證書有問題。我遇到的狀況通常是安裝了多個證書致使的,這時通常是經過revoke證書再從新制做解決。

下面主要徵對上傳到store上的app,說明一下步驟,參考資料來自官方文檔

 

在上傳以前,確保已經生成Mac App和Installer的證書,而且準備好production provisions。

另外,對程序自己也有些準備工做,好比設置App Icon,deployment target等等,這些和iOS App同樣。因爲咱們是要上傳到store的,所以咱們必需要enable sandbox。

由於sandbox的權限經過entitlement來控制的,因此如圖:

Network,Hardware,Apps下的選項根據需求來選擇,選擇後會自動在相應的entitlement文件中生成相應的鍵值。

接下來選中target後,在code sign下選擇合適的provisons(注意debug和release下的選擇)。若是發現安裝完provision後,xcode選項裏沒有,能夠重啓xcode看看。

在archive製做安裝包以前,咱們確認下schema的設置是否正確:

Archive的配置須是release的。

接下來咱們就要選擇xcode下的archive功能了,完成後會彈出 Organizer-Archives的窗口,右邊有個Distribute的按鈕,點擊:

 

1 submit:上傳到Store,記得在iTunes connect建立好相應的App,而後選擇next,接下來的事就交給xcode。

2 Export Developer:這種是不在store上的distribution

3 Export as:如圖,有3種選擇。

在上傳到store前,咱們必須測試安裝過程以確保程序能正確安裝。這時咱們能夠選擇export as paskage,生成一個安裝包,注意這個時候要選擇insaller的證書:以你的team名開頭,在"Identities without profiles"下。而後利用以下命令:

sudo installer -store -pkg path-to-package -target /

(-store是模擬從App store上安裝)

生成的App被安裝到/Application下,能夠自行查看。

運行測試後沒問題,就能夠提交到app store上了。

相關文章
相關標籤/搜索