iOS 開發流程筆記

iOS 開發流程筆記

  •  證書知識及準備工做ios

  •  幾種開發者賬號區別git

  •  真機調試流程github

  •  內測發佈流程web

  •  Appstore 上架流程後端

目錄導航

證書知識及準備工做

基礎問題答疑

什麼是證書

由 apple 官方頒發, 用以證實開發者身份的特殊文件, 在 iOS 開發中主要用於代碼簽名, 保障 iOS 生態的健康安全, 分爲開發者證書和發佈者證書

何時須要證書

只有在本機模擬器調試時無需代碼簽名, 當 App 須要在真機運行和發佈時須要使用相應證書進行簽名

證書如何得到

首先須要擁有相應權限的開發者賬號, 經過在本地生成配對的密鑰, 向 provisioning portal 提交公鑰後換取, 後續證書在使用時會驗證本地私鑰

如何對代碼進行簽名

在 xcode 中, 使用描述文件(provision profile 包含調試者證書, 受權設備清單, 應用ID), 在 Build Settings 中選擇存於 Keychain Access 中的證書文件設置調試和發佈任務時的代碼簽名

我生成的私鑰如何共享給團隊成員

在 Keychain Access 中找到導入的證書, 右擊導出爲包含私鑰的 Personal Information Exchange(.p12)文件(導出時能夠建立密碼), 團隊成員再導入 p12 證書後就完整包含了證書和私鑰

各流程中證書的需求狀況

模擬器調試

不須要

真機調試

  • 描述文件(Provisioning Profiles)

  • 開發者證書(ios_development.cer)

打包和發佈

  • 描述文件(Provisioning Profiles)

  • 可用於發佈的開發者證書(ios_distribution.cer)

消息推送後端服務

  • apns 證書

開發中常見的證書及相關文件介紹

CSR(certificate request) 文件

用於換取證書的公鑰文件, 實際是在本地基於 RSA 加密獲得配對的密鑰, 私鑰存於 Keychain Access 用於簽名, 公鑰做爲換取證書的憑證

生成方法
  • OSX 系統自帶的 Keychain Access

    • 選擇 "Request a Certificate From a Certificate Authority…"

    • 輸入 email 等信息後保存爲 .certSigningRequest 文件

  • 命令行下使用 openssl 生成

$ openssl genrsa -out private.key 2048
$ openssl req -new -sha256 -key private.key -out my.certSigningRequest

開發者證書

由 apple 官方頒發, 用來證實開發者資格的證書文件, 分開發(ios_development.cer)和發佈(ios_distribution.cer)兩種

cer 證書跟開發機(私鑰)綁定只能在擁有私鑰的機器上使用, 若是要遷移機器須要導出爲 p12 文件

生成方法

在 開發者中心 "certificates" 面板中添加 certificate 並上傳剛剛生成的 CSR 文件, 獲取 ios_development.cer

apns(Apple Push Notification Service) 證書

用於服務端消息推送, 相似 ssl 證書使用, 和 App 端的開發打包沒有關係

生成方法

在 開發者中心 "Identifiers" 面板中添加 App ID 並上傳剛剛生成的 CSR 文件, 獲取 aps_production.cer

p12(Personal Information Exchange) 證書

p12 證書實際是包含了 cer 證書及私鑰信息, 能夠分發給團隊成員

生成方法

在 Keychain Access 中找到已經導入的 cer 證書, 點右鍵導出爲 p12 格式

描述文件(Provisioning Profiles)

包含 certificate appID devices id 的文件用於在 xcode 調試打包時提供受權的配置信息

生成方法
  • 在 開發者中心 "Provisioning Profiles" 面板中添加 iOS Provisioning Profiles 並上傳剛剛生成的 CSR 文件, 獲取 .mobileprovision 文件

  • 在 xcode 登陸開發者賬號後能夠鏈接開發者中心獲取

附錄1: 開發準備相關的網址

開發者中心 https://developer.apple.com/devcenter/ios/index.action

iOS 描述管理(配置證書、描述文件、推送服務) https://developer.apple.com/ios/manage/overview/index.action

切換團隊(在 web 界面上死活沒有找到) https://developer.apple.com/account/selectTeam.action

iOS 上架 Appstore http://itunesconnect.apple.com/

幾種開發者賬號區別

詳見: https://developer.apple.com/programs/start/ios/

關鍵區別

我的賬號能夠真機調試, 發佈 appstore, 每nian 最多爲 100臺設備分發

公司賬號和我的賬號相似, 只有這兩種賬號能夠發佈 appstore, 主要特權是能夠添加多個開發者子帳號, 但只容許主帳號提交, 發佈等操做, 在協同開發時比較靈活, 能夠各自管理受權設備等

企業賬號沒法用於 appstore 發佈, 但能夠不經過 appstore 發佈任意 iphone 均可以安裝的應用

大學賬號不能發佈 appstore, 主要擁有真機調試的權限

真機調試流程

基本概念

真機調試指 mac 連上 iphone, xcode 能夠直接以這臺 iphone 設備爲 build target, 能在 iphone 裏執行編譯結果

條件和流程

分爲擁有獨立開發者賬號(也包括公司賬號或企業賬號成員)和共享開發者賬號兩種狀況

擁有獨立開發者賬號

  • 1. 在 provisioning portal 新建應用, 配置受權設備等

  • 2. 開發機上導入證書

  • 3. 在 xcode 上登陸開發者賬號, 不須要準備描述文件, xcode 會自動生成(若是是公司賬號能夠自動生成 iOS Team Provisioning Profile)

共享開發者賬號

若是沒法在 xcode 登陸一個開發者賬號, 也能夠經過他人對你手機和應用 id 的受權, 獲得 .mobileprovision 描述文件再導入其含私鑰的證書(p12) 便可, 具體步驟以下:

  • 1. 得到手機的 udid (能夠連上 mac, 在 itunes 中查看)

  • 2. 告知對方 udid (用以設備受權) 和 應用 id

  • 3. 獲得對方生成的證書和描述文件後, 先導入 p12 證書, 再雙擊 mobileprovision 文件

  • 4. 鏈接手機, 在 xcode 中選擇 build target 爲已鏈接的手機

對剛入門的我的開發者而言, 能夠在淘寶搜 iOS真機調試 花幾元購買一份受權, 包含(p12 證書 和 .mobileprovision 描述文件)

內測發佈流程

基本概念

當 App 開發進行到必定程度, 須要更多的人蔘與測試, 須要謀求一種方式方便應用能安裝進更多的設備中

實現條件

進行內測發佈主要的關鍵點是:

  • 1. 是如何將應用打包爲 .ipa

xcode6 之後, 我的/公司賬號沒法對應用打包爲 .ipa, 要麼用 xcode5 打包要麼擁有企業賬號級別的受權

  • 2. 設備需不須要受權

我的/公司賬號權限只有在 TestFlight / 越獄渠道下完成不受權安裝; 企業賬號受權能夠在 ad-hoc / in-house 渠道下分發, 完成不受權設備安裝

幾種常見的分發途徑

  • ad-hoc

打包時必須在登陸企業賬號(或其成員)並已導入證書和描述文件的狀況下, 任何用戶(未受權)均可以在手機上用瀏覽器訪問一個 url(例: itms-services://?action=download-manifest&url=https://example.com/manifest.plist) 完成安裝

最大的問題是安裝量有 100 的上限, 沒法做爲一個量很大的分發渠道

  • in-house

針對企業內部用戶進行分發, 相比 ad-hoc 無安裝量上限

iOS 8.1.3 開始不能企業證書 Iresign 方式從新簽名的應用沒法安裝 https://support.apple.com/en-us/HT204245

  • TestFlight

僅支持 iOS8.0 以上, 不須要對設備 udid 進行受權, 適合我的 / 公司開發者, 在應用發佈前能夠開啓 TestFlight Beta 測試並添加測試者的 iTunes Connect 賬號, 須要待測用戶擁有 iTunes Connect 賬號並在設備安裝 TestFlight 客戶端

這種方式很是便於推送應用更新和收集測試信息

  • 導出 ipa 包, 越獄安裝

若是測試設備都越獄了, 這種方式很是靈活簡單, 只有能導出 ipa 包就能經過 itools 等第三方工具安裝

附錄2: 常見分發渠道及工具地址

fir-第三方應用託管平臺 http://fir.im/

TestFlight https://developer.apple.com/testflight/

Agile-百度內部 ios 分發測試平臺 http://agile.baidu.com

fir-分發相關工具 http://fir.im/dev/tools

itools http://www.itools.cn/

Appstore 上架流程

@TODO

附錄3: App store最新審覈標準(2015.3)

App store最新審覈標準(2015.3) 中文翻譯

App store最新審覈標準(2015.3) 英文原版

相關文章
相關標籤/搜索