iOS開發認證和設定檔的使用

來源:互聯網
上載者:User

標籤:ios認證   儲存位置   tom   配置   合法性   問題:   類型   1.2   rip   

提示:之前只是根據網上的流程完成了iOS項目的發布過程,對於認證和設定檔仍是一頭霧水,這裡參照別人的文章,簡單瞭解一下,畢竟以後用的著。

這裡有幾個問題:

  • 什麼是iOS認證,它是如何與app應用關聯的?
  • iOS開發認證和生產認證有何區別,如何使用的?
  • 認證與設定檔(Provisioning Profiles)是什麼關係,設定檔在Xcode中如何使用?
  • 認證以及設定檔如何申請?
  • 什麼是Key Pair(公開金鑰/私密金鑰)?如何與認證關聯的?
  • 簽名的作用是什嗎?
1. 準備工作:

如果想要進行iOS開發,首先要具備下面一些條件:

1.1 首先要有蘋果開發帳號(Apple Developer Acount)
  • 只有擁有開發人員帳號,才能申請開發/發布認證及相應設定檔。
  • 開發人員帳號個人或公司開發人員帳號$99和企業開發人員帳號$299兩種類型。
1.2 若要進行真機調試,必須至少擁有一台MAC電腦。2. 登入iOS Dev Center

如果已經擁有蘋果開發人員帳號,直接登入蘋果開發人員中心申請開發認證。

進入到認證申請介面:

從上面可以看到四個關鍵東西:Certficates(認證)、Identifiers(標識符)、Devices(裝置)、Provisioning Profiles(供應設定檔),我們分別介紹這四項。

2.1 Identifiers(標識符)

Identifiers即標識符,相當於身份證,用於建立以下三個ID:

  • App IDs
  • Pass Type IDs
  • Website Push IDs
2.1.1 關於App IDs

其中,App ID是應用的唯一識別碼:

  • App ID和Xcode中的Bundle Identifier 是一致(Explicit)的或匹配(Wildcard)。
  • App ID字串通常以反網域名稱(reverse-domain-name)格式的Company Identifier (Company ID) 作為首碼 (Prefix/Seed),一般不超過255個ASCII字元
  • 使用者可在Developer MemberCenter網站上註冊(Register)或刪除(Delete)登入的App IDs。

2.1.2 建立App ID

在“Identifiers”一欄下選擇“App IDs”,可查看所有已申請的App IDs,點擊右上“+”。

進入Register IOS App ID 介面,在"App ID Description"欄下的“name”項中輸入名稱

填寫Bundle ID:

  • 在"Explicit App ID" 欄下的“Bundle ID”項中輸入 App ID (反網域名稱格式,如com.company.test)
  • 這裡的“Bundle ID” 對應Xocde的中的“Bundle identifier”
  • Explicit App ID :唯一的App ID,用於唯一標識一個應用程式。例如“com.apple.garageband”這個App ID,用於標識Bundle Identifier為"com.apple.garageband"的app。
  • Wildcard App ID:含有萬用字元的App ID,用於標識一組應程式,例如“com.apple”(實際上是Application Identifier Prefix)表示所有應用程式;而“com.apple.”可以表示Bundle Identifier 以 “com.apple.”開頭(蘋果公司)的所有應用程式。

在"App Services"欄下選擇應用要使用到的服務(如果要使用推送功能,勾選“Push Notifications”)。

 

點擊continue - 點擊submit - 點擊done,申請“App IDs”完成,點擊 All IDs可查看申請的ID,點擊該ID

點擊 Edit 可對該App ID進行編輯。

2.2 Certificates2.2.1 描述

iOS認證是用來證明iOS App內容(executable code)的合法性和完整性的數位憑證。對於想安裝到真機或發布到AppStore的應用程式,只有經過簽名驗證(Signature Validated)才能確保來源可信,並且保證App內容是完整、未經篡改的。

  • 數位憑證是一個經認證授權中心數位簽章的包含公開密鑰擁有者資訊已經公開密鑰的檔案。具有時效性,只在特定的時間段內有效。
  • iOS認證分為兩種:開發認證和生產認證。開發認證用於開發和調試應用程式,可用於聯機調試。生產認證用來發布應用程式。
2.2.2 產生認證請求檔案(CSR)

可以通過KeyChain(鑰匙串)認證助理從憑證授權單位請求認證。在iOS Dev Center中添加認證(Certificates)時,需要上傳CSR檔案。

開啟KeyChain(鑰匙串),點擊功能表列“鑰匙串訪問” - “認證助理” - “從憑證授權單位請求認證”

填寫開發人員帳號郵件和常用名稱,勾選“儲存到磁碟”

繼續並選擇儲存位置後,KeyChain將產生一個包含開發人員身份資訊的CSR(Certificate Signing Request)檔案。同時,KeyChain Access - keys(密鑰)中增加一對 Public/Private Key Pair。

  • 私密金鑰:始終儲存在Mac OS的Keychain Access中,用於簽名對外發布的App
  • 公約:一般隨認證散步出去,對App簽名進行校正認證。
2.2.3 申請認證

進入iOS Dev Cneter,點擊"Certificate" - "All",點擊右上方"+"(也可以點擊“Certificate”下的“Development”或“Production”,直接選擇申請開發認證或生產認證),進入如下介面:

選擇開發認證或者生產認證,這裡以生產認證為例,繼續:

選擇App ID,即我們在“Identifiers”中建立的App ID,繼續:

這裡介紹的是如何產生認證請求檔案,即我們在“2.2.2 產生認證請求檔案(CSR)”中產生的.certSigningRequest檔案,然後繼續:

這裡需要添加的是你產生的認證請求檔案(CSR),“Choose File”選擇產生的.certSigningRequest檔案,點擊"Generate",申請開發認證完成,申請生產認證類似,這裡不再贅述。

我們可以點擊"Download"下載該開發認證,或者在“Certificates” - All 中查看該認證,並進行下載或刪除。

我們下載認證,然後需要雙擊 匯入 鑰匙串(KeyChain Access),然後就可以在 KeyChain Access - 認證 中查看:

展開安裝的認證(ios_development.cer)前面的箭頭,可以看到其對應的私密金鑰,在 KeyChainAccess - "密鑰"中展開建立CSR時產生的Key Pair中的私密金鑰前面的箭頭,就可以查到包含其對應公開金鑰的認證。

2.2.4 匯出認證

開啟Keychain Access,選擇安裝成功的認證,右鍵選擇“匯出:

輸入名字,預設格式為.p12類型,選擇”save“

設定密碼,點擊"OK"

2.3 Devices
  • Device 是指運行iOS系統用於開發調試App的裝置,每台Apple裝置使用UDID來唯一標識。
  • 裝置的UDUD擷取就不說了
  • 開發描述檔案 (Provisioning Profiles)必須綁定裝置,所以在申請開發描述檔案之前,必須要添加調試的裝置
2.3.1 添加調試裝置

進入iOS Dev Center,”Devices“下選擇”All“,可查看所有已添加的裝置,點擊右上方”+“添加新的調試裝置:

輸入”Name“和 UDID (可在xcode或者itunes中查看)後繼續

確認資訊後,點擊註冊,完成添加。

2.4 Provisioning Profiles2.4.1 概念

Provisioning Profile檔案包含了上述所有內容:認證、App ID、裝置,尾碼名為.mobileprovision

  • 一個Provisioning Profile 對應一個Explicit App ID 或 WildCard App ID.
  • Provisioning Profile 決定Xcode用哪個認證(公開金鑰)/私密金鑰組合來簽名應用程式,將在應用程式打包時嵌入到.ipa包裡
  • Provisioning Profile把這些資訊全部打包在一起,方便我們在調試和發布程式打包時使用,這樣,只要在不同的情況下,選擇不同的Provisioning Profile檔案就可以了
  • Provisioning Profile 也分為 Development 和 Distribution 兩類,有效期間同 Certificate一樣。Development版本的ProvisioningProfile用於開發調試,Distribution版本的ProvisioningProfile主要用於提交App Store審核,其不指定開發測試的Devices.
  • xcode 開發時,需在 XcodeTarget - build settings - code signing - provisioning profile 下配置對應的描述檔案,然後在code signing identity 下拉可選擇 identities from profile 即Provisioning Profile中包含的Certificates
  • 在XcodeTarget - build setting code signing - provisioning profile 可選擇”Automatic“,xcode會根據該Target的”Bundle Identifier“選擇預設的設定檔及認證。

2.4.2 建立設定檔

開啟iOS Dev Center,”Provisioning Profiles“ - all,點擊右上方"+",或直接點擊”Development“ 或 ”Production“

選擇開發或發布認證設定檔,這裡以開發為例,點擊iOS AppDevelopment,繼續

選擇對應的App ID,繼續

選擇要關聯的認證,可多選

選擇用於調試安裝的裝置(最多100台裝置),如果是生產認證設定檔,則不會出現該頁面:

輸入檔案名稱後,點擊"Generate",設定檔建立成功:

點擊"DownLoad"進行下載。

下載到本地的Provisioning Profile,雙擊自動安裝到Xcode中,在XcodeTarget->Build Settings->Code Signing->Provisioning Profile中可看到此項。

,選擇此項設定檔,code signing identity 中會預設顯示所關聯的認證檔案,即建立該設定檔時選擇關聯的認證,可以有多個,生產認證設定檔與之類似,不再多說。

iOS開發認證和設定檔的使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.