天天看點

iOS蘋果賬号/證書/推送證書之我見一、蘋果賬号二、證書/推送證書說明三、送出AppStore後,Cornerstone打Tag步驟:

一、蘋果賬号

1、公司團隊賬号 (Company/Organization):

費用99美金一年, 該賬号在App Store銷售者可以顯示類似Studios,或者自定義的團隊名稱 ,比如Mamshare INC,公司賬号可以允許多個開發者協作開發,比個人多一些帳号管理的設定,可以設定多個AppleID,分4種管理級别權限,詳細見備注。100個蘋果的iOS裝置UDID測試。但是申請時需要填寫公司的鄧白氏編碼(D-U-N-S)。

2、企業賬号 (Enterprise)

費用299美金一年, 該賬号開發應用不能釋出到App Store,隻能企業内部應用,蘋果的iOS裝置UDID數量不限制。企業賬号适合不希望上線App Store,但是需要企業内部比如1000人的iOS裝置都部署。公司測試部門需要全公司測試裝置,突破100個UDID的限制。

二、證書/推送證書說明

1、概念介紹

1.1、Certificate

證書是用來給應用程式簽名的,隻有經過簽名的應用程式才能保證他的來源是可信任的,并且代碼是完整的,未經修改的。在Xcode Build Setting的CodeSigning Identity中,可以設定用于為代碼簽名的證書。 

證書主要分為兩類:Development和Production,Development證書用來開發和調試應用程式,Production主要用來分發應用程式(根據證書種類有不同作用),下面是證書的分類資訊:(括号内為證書有效期)

1)、Development

App Development (1年):用來開發和真機調試應用程式。

Push Development (1年):用來調試Apple PushNotification

2)、Production

Ad Hoc :用來釋出AdHoc的應用程式。

App Store :用來釋出送出App Store的應用程式。

Push Production (1年):用來在釋出版本中使用Apple PushNotification

1.2、App ID

App ID用于辨別一個或者一組App,App ID應該是和Xcode中的Bundle ID是一緻的或者比對的。App ID主要有以下兩種: 

1)、Explicit App ID:

唯一的App ID,這種App ID用于唯一辨別一個應用程式,例如com.wzc.demo,辨別Bundle ID為com.wzc.demo的程式。

2)、Wildcard App ID:

通配符App ID,用于辨別一組應用程式。例如*可以表示所有應用程式,而com.wzc.*可以表示以com.wzc開頭的所有應用程式。

每建立一個App ID,我們都可以設定該App ID所使用的APP Services。每種服務都有着不同的要求,例如,如果要使用Apple PushNotification Services,則必須是一個explicit App ID,以便能唯一辨別一個應用程式。下面是目前所有可選的服務和相應的配置要求。

iOS蘋果賬号/證書/推送證書之我見一、蘋果賬号二、證書/推送證書說明三、送出AppStore後,Cornerstone打Tag步驟:

如果你的App使用上述的任何一種service,就要按照要求去配置。

1.3、Device

Devices中包含了該賬戶中所有可用于開發和測試的裝置。 每台裝置使用UDID來唯一辨別。每個賬戶中的裝置數量限制是100個。

1.4、Provisioning Profile

一個Provisioning Profile檔案包含了上述的所有内容:證書、App ID、裝置。要打包或者在真機上運作一個應用程式,首先需要證書來進行簽名,用來辨別這個應用程式是合法的、安全的、完整的;然後需要指明它的App ID,并且驗證Bundle ID是否與其一緻;再次,如果是真機調試,需要确認這台裝置能否用來運作程式。Provisioning Profile就把這些資訊全部打包在一起,友善在調試和釋出程式打包時使用,這樣隻要在不同的情況下選擇不同的profile檔案就可以了。而且Provisioning Profile檔案會在打包時嵌入.ipa的包裡。

例如,如下圖所示,一個用于Development的Provisioning Profile中包含了該Provisioning Profile對應的App ID,可使用的證書和裝置。這意味着使用這個Provisioning Profile打包程式必須擁有相應的證書,并且将App ID對應的程式運作到Devices中包含的裝置上去。

iOS蘋果賬号/證書/推送證書之我見一、蘋果賬号二、證書/推送證書說明三、送出AppStore後,Cornerstone打Tag步驟:

如上所述,在一台裝置上運作應用程式的過程如下:

iOS蘋果賬号/證書/推送證書之我見一、蘋果賬号二、證書/推送證書說明三、送出AppStore後,Cornerstone打Tag步驟:

與證書一樣,Provisioning Profile也分為Development和Distribution兩種:

1)、Development (1年)

2)、Distribution (1年)

Ad Hoc

App Store

Ad Hoc的包隻能運作在該賬戶内已登記的可用裝置上,顯然是有最多100個裝置的數量限制。是以這兩種Provisioning Profile檔案的差別就在于其中的裝置限制不一樣而已,而他們所使用的Certificate是相同的。

2、程式打包介紹

2.1、蘋果程式打包方式介紹

iOS蘋果賬号/證書/推送證書之我見一、蘋果賬号二、證書/推送證書說明三、送出AppStore後,Cornerstone打Tag步驟:

1)、Save for iOS App Store Deployment

儲存到本地準備上傳App Store 或者在越獄的iOS裝置上使用

2)、Save for Ad Hoc Deployment

儲存到本地準備在賬号添加的可使用裝置上使用(具體為在開發者賬戶下添加可用裝置的udid),該app包是釋出證書編譯的.

 3)、Save for EnterpriseDeployment

這種主要針對企業級賬戶下準備本地伺服器分發的app

4)、Save for Development Deployment

針對内部測試使用,主要給開發者的裝置(具體也為在開發者賬戶下添加可用裝置的udid)。該app包是開發證書編譯的

我們現在提供給測試打包,測試環境和HK環境都使用第三種方式打包(Save for EnterpriseDeployment),這樣程式安裝包可以安裝在任意一台iPhone手機上,友善測試發給市場等公司内部同僚安裝體驗;ME環境使用第二種方式打包(Save for Ad Hoc Deployment),第二種方式使用的釋出證書與正式送出AppStore的版本使用的證書是一樣的,是以他們可以共用同一推送證書,這樣就可以測試ME環境的推送流程是否有問題了,這種方式打包的程式隻可以運作在我們已經添加到開發賬戶對應的devices裝置上使用

3、推送注意

使用蘋果的推送服務,需要注意以下幾點:

a. APNS是免費的。隻要有開發者賬号便可以申請APNS證書。

b. APNS是不可靠的,蘋果對資訊推送的可靠性不做任何保證。

c. APNS對消息的大小是有限制的,總容量不能超過256位元組。

如果需要推送成功,需要保證 程式打包使用的證書 和伺服器端推送使用的證書以及推送網址需要保持一緻,才可以推送成功。一般對應邏輯如下:

Product證書--->Product推送證書--->Product證書打包的程式對應的devicetoken--->Product推送網址(ssl://gateway.push.apple.com:2195)

Development證書--->Development推送證書--->Development證書調試的程式對應的devicetoken--->Development推送網址(ssl://gateway.sandbox.push.apple.com:2195)。

三、送出AppStore後,Cornerstone打Tag步驟:

1.在Cornerstone找到要打Tag的程式,右擊彈出下圖,選着Tag...:

iOS蘋果賬号/證書/推送證書之我見一、蘋果賬号二、證書/推送證書說明三、送出AppStore後,Cornerstone打Tag步驟:

2.彈出下圖,解釋如下:

Tag As:tag的名稱,一般為做tag記錄的檔案夾名稱_版本号_日期

Where:tag對應的路徑,一般選擇ios_app/tags

Revision:一般預設的為最後送出的版本

iOS蘋果賬号/證書/推送證書之我見一、蘋果賬号二、證書/推送證書說明三、送出AppStore後,Cornerstone打Tag步驟: