證書知識及準備工做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 證書
用於換取證書的公鑰文件, 實際是在本地基於 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
用於服務端消息推送, 相似 ssl 證書使用, 和 App 端的開發打包沒有關係
在 開發者中心 "Identifiers" 面板中添加 App ID
並上傳剛剛生成的 CSR
文件, 獲取 aps_production.cer
p12
證書實際是包含了 cer
證書及私鑰信息, 能夠分發給團隊成員
在 Keychain Access 中找到已經導入的 cer
證書, 點右鍵導出爲 p12
格式
包含 certificate
appID
devices id
的文件用於在 xcode 調試打包時提供受權的配置信息
在 開發者中心 "Provisioning Profiles" 面板中添加 iOS Provisioning Profiles
並上傳剛剛生成的 CSR
文件, 獲取 .mobileprovision
文件
在 xcode 登陸開發者賬號後能夠鏈接開發者中心獲取
開發者中心 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/
我的(individual) $99/year
公司(company) $99/year
企業(enterprise) $299/year
大學(University) free
我的賬號能夠真機調試, 發佈 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 等第三方工具安裝
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/