iOS開發認證與設定檔的使用,ios認證設定檔
前提
眾所周知,開發iOS應用必須要有iOS認證(Certificates)和設定檔(Provisioning Profiles),那麼問題來了:
1.什麼是iOS認證,它是如何與app應用關聯的?
2.iOS開發認證和生產認證有何區別,如何使用的?
3.認證與設定檔(Provisioning Profiles)是什麼關係,設定檔在Xcode中如何使用?
4.認證以及設定檔如何申請?
5.什麼是Key Pair(公開金鑰/私密金鑰)?如何與認證關聯的?
6.簽名的作用是什嗎?
準備工作
如果想要進行iOS開發,首先要具備下面一些條件:
1.首先,要有蘋果開發人員帳號(Apple Developer Account)
- 只有擁有開發人員帳號,才能申請開發/發布認證及相應設定檔。
- 開發人員帳號分為Individual(個人或公司開發人員帳號$99)和Company/Organization(企業開發人員帳號$299)兩種類型。
2.若要進行真機調試,必須至少擁有一台裝有Mac OS X/Xcode的Mac開發機(iMac or MacBook)
1.登陸iOS Dev Center
如果已經擁有蘋果開發人員帳號,直接登入蘋果開發人員中心申請開發認證。
- 登入介面
F323D07E-B16C-43D6-AF31-7B681C9EFCA7.png
- 選擇“Certificates, Identifiers & Profiles”項進入後顯示下面介面,iOS Apps一欄中任意選擇一項
EB52CB59-2C2C-4DB8-8F4E-F9F3F1BB28FB.png
5F9C1BE5-46DB-4023-AD0E-1F717AEB80AE.png
下面就這四項,分別介紹
2.Certificates(認證),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)的。
FEDE676C-1DFC-4958-B52E-3B2DF73A35B3.png
- 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,點擊右上“+”
1EF8FB56-E265-4B97-A8BE-327841B86814.png
- 進入Register iOS App ID介面,在“App ID Description”欄下的“Name”項中輸入名稱
72E71207-FB31-4BC6-8E03-7EDADE9A82EC.png
- 在“Explicit App ID”欄下的“Bundle ID”項中輸入App ID(反網域名稱格式,如:com.company.test)
- 這裡“Bundle ID”對應Xcode中的“Bundle identifier”
- Explicit App ID:唯一的App ID,用於唯一標識一個應用程式。例如“com.apple.garageband”這個App ID,用於標識Bundle Identifier為“com.apple.garageband”的App。
- Wildcard App ID:含有萬用字元的App ID,用於標識一組應用程式。例如“”(實際上是Application Identifier Prefix)表示所有應用程式;而“com.apple.”可以表示Bundle Identifier以“com.apple.”開頭(蘋果公司)的所有應用程式。
378CCEC6-8B91-4CD8-AD2D-027A49B8AA02.png
- 在“App Services”欄下選擇應用要使用到的服務(如要使用推送功能,勾選“Push Notifications”)
423D58C6-2535-4726-98C6-500658BD1141.png
- 點擊continue->點擊submit->點擊done,申請App IDs完成。點擊All IDs可查看申請的ID,點擊該ID
453733A7-ABE7-4696-95EE-45168BD75172.png
2.2. Certificates2.2.1. 描述
iOS認證是用來證明iOS App內容(executable code)的合法性和完整性的數位憑證。對於想安裝到真機或發布到AppStore的應用程式(App),只有經過簽名驗證(Signature Validated)才能確保來源可信,並且保證App內容是完整、未經篡改的。
- 數位憑證是一個經認證授權中心數位簽章的包含公開密鑰擁有者資訊以及公開密鑰的檔案。具有時效性,只在特定的時間段內有效。
- iOS認證分兩種:開發認證(Development)和生產認證(Production)。
2.2.2. 產生認證請求檔案(CSR)
可以通過Keychain(鑰匙串)認證助理從憑證授權單位請求認證。在iOS Dev Center中添加認證(Certificates)時,需要上傳改CSR檔案。
- 開啟Keychain(鑰匙串),點擊功能表列“鑰匙串訪問”->“認證助理”->“從憑證授權單位請求認證”
64A49729-3C03-4F8F-9910-3E9688235B86.png
096ED51F-A832-4DA5-BBB0-FEBA17BE4764.png
- 繼續並選擇儲存位置後,Keychain將產生一個包含開發人員身份資訊的CSR(Certificate Signing Request)檔案。同時,Keychain Access->Keys(密鑰)中增加一對Public/Private Key Pair。
DAB324D4-D886-4097-A54D-1E37038A87A1.png
2.2.3.申請認證
- 進入iOS Dev Center,“Certificate”->“All”,點擊右上方“+”(也可直接點擊“Certificate”下的“Development”或“Production”,直接選擇申請開發認證或生產認證),進入如下介面:
F5FABF55-157A-47BB-B3A3-3A0125ABAFDC.png
- 選擇開發認證或者生產認證,這裡以生產認證為例,繼續
DB782EBE-01C6-48A1-A83E-A6B6CAC5D349.png
- 選擇App ID,即我們在“ Identifiers”中建立的App ID,繼續
62F40B5F-4FA9-49C3-B707-46EADD3EC28A.png
- 這裡介紹如何生產認證請求檔案,即我們在“2.2.2. 產生認證請求檔案(CSR)”中產生的.certSigningRequest檔案,這裡繼續
1A7B633E-B61B-4E63-8EEB-B0D15D0B053E.png
- 這裡需要添加產生的認證請求檔案(CSR),“Choose File”選擇產生的.certSigningRequest檔案,點擊“Generate”,申請開發認證完成,申請生產認證流程類似,這裡不再贅述。
9D2FC3A0-7FC7-43A9-8C3D-B60F108528ED.png
- 我們可以點擊“Download”下載該開發認證,或者在“Certificates”->“All”中查看該認證,並進行下載或刪除,
A9690706-6620-4A3D-9B9A-D727EFFC9179.png
- 下載認證,雙擊匯入Keychain Access,可在Keychain Access->“認證”中查看
螢幕快照 2015-12-06 下午5.40.06.png
- 展開安裝的認證(ios_development.cer)前面的箭頭,可以看到其對應的私密金鑰。在KeychainAccess->“密鑰”中展開建立CSR時產生的Key Pair中的私密金鑰前面的箭頭,可以查看到包含其對應公開金鑰的認證.
2.2.4.匯出認證
- 開啟Keychain Access,選擇安裝成功的認證,右鍵選擇“匯出”
1EF53825-B4C4-43B6-A0D8-536FE32AEB81.png
- 輸入名字,預設格式為.p12類型,選擇“Save”
72BA1D21-C005-4A7B-81B6-3B8ADC62872D.png
47AF6037-0C4F-4960-9AD8-75C5EE34CA6F.png2.3. Devices
2.3.1.添加調試裝置
- 進入iOS Dev Center,“Devices”下選擇“All",可查看所有已添加的裝置,點擊右上方“+”添加新的調試裝置
9A9CA0B2-F320-4F9F-B51A-B0C250FECC63.png
- 輸入“Name”和UDID(可在xcode或者iTunes中查看)後,繼續
ADF3D2DB-09B6-42D2-899B-D92D0E6163B5.png
2.3. Provisioning Profiles2.3.1 概念
Provisioning Profile檔案包含了上述所有內容:認證,App ID,裝置,尾碼名為.mobileprovision。
3DAD606D-8BDC-4A7E-8644-5A7CF27DF3B4.png2.3.2. 建立設定檔
- 開啟iOS Dev Center,“Provisioning Profiles”->“All”,點擊右上方“+”(也可直接點擊“Development”或“Production”)
AC661BDE-DE94-487E-9A71-4C436224CB5D.png
- 選擇開發或發布認證設定檔,這裡以開發為例,點擊iOS App Development,繼續
0AB45E72-821D-4F5C-84F8-CA19E97CC565.png
F0C2D519-CA90-4286-A0AB-3A42DB4EADA0.png
50725524-699D-400B-B1C0-3C5024774F95.png
- 選擇用於調試安裝的裝置(最多100台裝置),如果是生產認證設定檔,則不會出現該頁面(生產認證用於發布,不能進行開發調試),繼續看到以下介面
3FD54433-014F-4861-803F-994FFACCC910.png
- 輸入檔案名稱後,點擊“Generate”,設定檔建立成功
56C9B53B-666E-4173-8083-D1857EB58CD4.png
- 可點擊“Download”進行下載,或者在“Provisioning Profiles”->“All”查看所有設定檔,並進行下載或刪除等操作。
6F158A64-B819-476F-86EC-A4BA6EF1E3D2.png
- 下載到本地的Provisioning Profile,雙擊自動安裝到xcode中,在XcodeTarget->Build Settings->Code Signing->Provisioning Profile中可看到此項。
F5A42FB8-44EB-4A5C-B53C-3F3499CF883D.png
- ,選擇此項設定檔,“Code Signing Identity”中會預設顯示所關聯的認證檔案(即建立該設定檔時選擇關聯的認證,可有多個)
3E6BFDF4-28E2-49DF-A31E-0FF507A1604F.png