iOS開發之進階篇(1)—— 證書、打包上架流程、p12文件

版本

  • Xcode 11.3.1

證書

iOS開發相關的證書有很多種,iOS開發證書(iOS App Development)、iOS發佈證書(iOS Distribution (App Store and Ad Hoc))、網站推送ID證書(Website Push ID Certificate)、Apple Pay付款處理證書(Apple Pay Payment Processing Certificate)等等。Xcode 11以後,又新增了Apple Development和Apple Distribution,前者是iOS/macOS/tvOS/watchOS各平臺開發證書的結合,後者是這些平臺的發佈證書結合。
種類繁多,我們挑選一般的App從開發到上架App Store所必備的證書。
以Xcode 11版本以後的開發環境爲例,其實只要具備兩個證書就夠了:蘋果開發證書(Apple Development)蘋果發佈證書(Apple Distribution)

Apple Development

蘋果開發證書,包括 iOS / macOS / tvOS / watchOS 各平臺的開發證書。
當我們進行真機調試的時候,就需要安裝這個證書。證書是安裝在Mac電腦的“鑰匙串訪問”裏面的,只要安裝一次即可,並不是每創建一個工程就都要安裝一次證書。
要進行真機調試,我們一般需要以下步驟:

  1. 生成證書申請文件
    打開Mac的鑰匙串訪問App
    鑰匙串訪問
    證書助理=》從證書頒發機構請求證書
    請求證書
    填寫相關信息
    相關信息
    選擇存儲到本地(比如桌面),因爲我們後面生成證書的時候會用到這個文件。
    證書申請文件

  2. 生成開發證書
    登錄Apple developer, 選擇證書,添加之。
    添加證書
    選擇App Developer,continue
    開發證書
    然後點擊Choose File,上傳我們剛纔生成的申請文件(.certSigningRequest)。continue
    截屏2020-03-13下午2.55.30.png
    直至生成了開發證書顯式於列表中(不同電腦會生成不同的開發證書):
    開發文件列表

  3. 安裝開發證書
    點擊你剛生成的證書,下載之。
    下載證書
    雙擊安裝之。
    安裝證書
    然後我們就可以在鑰匙串訪問的App裏面的我的證書裏看到安裝成功了
    查看證書

  4. 愉快地進行真機開發調試

Apple Distribution

蘋果發佈(分佈)證書,包括 iOS / macOS / tvOS / watchOS 各平臺的發佈證書,可用於發佈商店版(App Store) 和 內測版(Ad Hoc)。
發佈App,一般需要以下步驟:

  1. 生成證書申請文件,這個申請文件在前面的開發證書已經生成了,可以繼續使用。
  2. 生成發佈證書
    同樣,登錄Apple developer,新建一個證書,然後選擇Apple Distribution。
    生成發佈證書

一個賬號最多隻能生成三個發佈證書,我這個賬號已經申請滿了,所以是灰色不可選。
上傳的時候選擇一個發佈證書就行了,證書有效期是一年,到期後App Store上的現有App將不受影響。但是,不能使用過期或已撤銷證書來更新App,可生成新的證書繼續更新App。

後面和申請開發證書一樣,Choose File上傳申請文件然後下一步直至生成發佈證書:
查詢發佈證書
3. 安裝發佈證書
下載之。
下載發佈證書
鑰匙串訪問裏查看:
查看發佈證書
4. 愉快地發佈App

App打包上架流程

App Store部分

因爲我們要上傳安裝包到App Store,所以得先App Store Connect裏面創建一個App,而創建App是基於套裝ID來創建的。所以我們第一步是創建套裝ID。

  1. 創建套裝ID
    進入開發者網站裏的證書設置
    Apple developer

創建App ID
創建ID
選擇創建App IDS
填寫信息,Bundle ID與工程中的Bundle Identifier一致。
填寫信息
創建成功如下:
查詢App ID
接着,創建描述文件Profiles,此描述文件即對應App Store Connect裏的套裝ID。
創建描述文件
選擇App Store
選擇剛纔的App ID
選擇App ID,選擇發佈證書等等創建好。
然後到App Store Connect裏創建App
創建App
填寫信息
新建App
套裝ID選擇剛纔在證書配置裏面創建好的App。
至此創建App完畢。接下來在Xcode打包上傳。

Xcode部分

首先我們看看TARGETS的Architecture配置
archive
在Build Active Architecture Only選項裏,Debug選擇Yes表示調試的時候只編譯生成當前機型對應的架構,這樣使得編譯調試的時候更快;Release選擇No表示發佈時編譯Valid Architectures中的所有架構,如果不編譯某個架構,那麼這個架構對應的機型將無法安裝這個安裝包。
各機型的處理器對應架構

  • 模擬器32位處理器 – i386
  • 模擬器64位處理器 – x86_64
  • 真機32位處理器 – armv7、armv7s(armv7兼容armv7s)
  • 真機64位處理器 – arm64架構

具體機型對比

  • armv6: iPhone、iPhone 2、iPhone 3G、iPod Touch(第一代)、iPod Touch(第二代)
  • armv7: iPhone 3Gs、iPhone 4、iPhone 4s、iPad、iPad 2
  • armv7s: iPhone 5、iPhone 5c (armv7兼容armv7s)
  • arm64(無armv64): iPhone 5s之後機型

現在來說,我們只需要支持armv7和arm64這兩個架構就可以了。
這裏順便提一下,如果我們使用的第三方庫不支持某些框架的話,那麼我們是無法使用到所缺失框架對應的機型上的。比如說,我們某些庫不支持 i386/x86_64 框架,那麼我們將無法使用模擬器來運行代碼。
接着我們的打包上架流程。
圖太多了,就挑幾個主要流程吧。。。
Archive

Archives

App Store

自動管理簽名

上傳成功

至於App信息填寫審覈等步驟這裏就不討論了。。。

.p12文件

前面說過發佈證書一個開發者賬號最多隻能創建三個。而且這個證書是和電腦綁定的,也就是說,A電腦創建的證書不能用在B電腦上。那麼問題來了,從A電腦拷貝一個工程到B電腦,B電腦倒是可以自己創建開發證書來調試這個工程,可如果發佈證書滿了不能再創建,這時候就發佈不了了。
如果想在B電腦上也能發佈App,那麼就需要從A電腦導出發佈證書(裏面含有私鑰):
導出證書
起名,加密等
證書信息
p12
導出的文件即爲p12後綴的文件,然後放到B電腦中安裝,即可在鑰匙串中生成發佈證書(包含私鑰),就可以用於發佈App了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章