前言
最近又牽扯到了應(yīng)用測(cè)試包的打包問題,為了避免頻繁給測(cè)試真機(jī)安裝應(yīng)用,個(gè)人注冊(cè)了蒲公英。繼而簡(jiǎn)單整理了下 蒲公英和TestFlight 兩種測(cè)試分發(fā)方式。
因?yàn)槭呛?jiǎn)單整理,會(huì)比較零碎,需要一定的基礎(chǔ)知識(shí),比如應(yīng)用打包、證書簽名等。如果能幫到讀者多了解一些知識(shí),那是很好的。也希望能得到寶貴的反饋意見。
蒲公英
注冊(cè)
蒲公英需要注冊(cè)使用,分為 個(gè)人 和 公司。都需要認(rèn)證信息。
- 個(gè)人:身份證照片、身份證號(hào)、郵箱、手機(jī)號(hào)以及一些基本信息;
- 公司:營(yíng)業(yè)執(zhí)照照片、營(yíng)業(yè)執(zhí)照號(hào)以及一些基本信息。
導(dǎo)出時(shí)證書選擇和簽名方式
證書選擇
在發(fā)布到蒲公英上的安裝包,可以選擇如下兩種方式的證書簽名:
- Ad-hoc;
- In-house。
具體使用哪種方式,取決于蘋果開發(fā)者賬號(hào)類型。
使用 Ad-hoc 方式的的賬號(hào)類型可以是:個(gè)人賬號(hào)($99)、公司賬號(hào)($99)、企業(yè)賬號(hào)($299)、教育賬號(hào)($0);
使用 In-house 方式的賬號(hào)類型是:企業(yè)賬號(hào)。
簽名方式
目前為止,蘋果為 iOS 應(yīng)用提供了三種類型的證書簽名方式:
- Ad-hoc;
- In-house;
- App-Store;
蒲公英會(huì)根據(jù)打包證書的不同,分別顯示 內(nèi)測(cè)版,企業(yè)版,App-Store版。
對(duì)應(yīng)的三種類型,蒲公英支持的安裝范圍也不同:
- Ad-hoc 需要UDID被添加到證書中的設(shè)備才可安裝 ----個(gè)人、公司、企業(yè)、教育賬號(hào)
- In-house 任何 iOS 設(shè)備均可安裝 ----企業(yè)賬號(hào)
- App-Store 通過 App Store 安裝 ----個(gè)人、公司、教育賬號(hào)
不是以企業(yè)賬號(hào)使用 Ad-hoc 方式,因?yàn)樽C書中設(shè)備數(shù)量的限制,只能安裝 100 臺(tái)設(shè)備。
打包方式
打包到蒲公英的包,在 export 出 ipa 包時(shí),不要選擇 Save for App Store Deployment 選項(xiàng)。否則可能會(huì)出現(xiàn)無(wú)法安裝的問題。
- 如果是個(gè)人或公司蘋果賬號(hào),選擇 Save for Ad Hoc Deployment;
- 如果是企業(yè)蘋果賬號(hào),選擇 Save for Enterprice Deployment。
上傳應(yīng)用
蒲公英有 3 種上傳應(yīng)用方式:
- 通過蒲公英網(wǎng)站(常用);
- 通過蒲公英桌面客戶端;
- 通過蒲公英開放 API。
通過網(wǎng)站上傳應(yīng)用 ipa 包,然后填寫一些基本信息,就可以在蒲公英上發(fā)布應(yīng)用,然后通過 二維碼 下載。
發(fā)布應(yīng)用
蒲公英有 2 種發(fā)布方式:
- 立即發(fā)布;
- 定時(shí)發(fā)布。
安裝失敗原因排查
使用蒲公英安裝 iOS 內(nèi)測(cè)應(yīng)用時(shí),會(huì)遇到安裝失敗的情況,常見的原因如下:
-
在 iOS 9 中啟動(dòng)應(yīng)用時(shí),出現(xiàn)“未守信任的企業(yè)級(jí)開發(fā)者”
設(shè)置 - 通用 - 描述文件(設(shè)備管理),信任應(yīng)用的企業(yè)證書 。 link
-
在 iOS 9 中點(diǎn)擊“安裝”按鈕后,沒有彈出“是否安裝”的提示
先刪除之前已經(jīng)安裝的應(yīng)用,然后再?gòu)钠压惭b。
-
iOS 9 中,點(diǎn)擊“安裝”,沒有任何反應(yīng),桌面也沒有在安裝的應(yīng)用圖標(biāo),但是狀態(tài)欄的網(wǎng)絡(luò)圖標(biāo)在轉(zhuǎn)
多等一會(huì)。網(wǎng)絡(luò)圖標(biāo)在轉(zhuǎn)說明后臺(tái)已經(jīng)在下載安裝了。
-
在 iOS 8 或 iOS 9 中安裝一個(gè)之前安裝過的應(yīng)用時(shí),安裝失敗
可以在蒲公英應(yīng)用設(shè)置中,將“iOS 8安裝修復(fù)”功能打開。
-
安裝 iOS 應(yīng)用時(shí),出現(xiàn)提示“無(wú)法連接到 ssl.pgyer.com”
一般是由于網(wǎng)絡(luò),或者緩存錯(cuò)誤造成的。
1、重啟手機(jī),然后重試;
2、換 wifi,然后重試。 -
其他一些原因
在導(dǎo)出 ipa 文件時(shí),選擇了 App Store 方式;
在導(dǎo)出 ipa 文件時(shí),選擇了 Ad-hoc 方式,但是沒有添加設(shè)備 UDID;
在導(dǎo)出 ipa 文件時(shí),選擇了 In-house 方式,但證書已經(jīng)過期;
-
在生成 App 安裝包時(shí),沒有在 Xcode 中設(shè)置正確的 Architecture;
具體操作方法是:在 Xcode - Build Settings - Architecture 中,增加 armv7、armv7s、arm64,以便所有設(shè)備都可以安裝。然后,將 "Build active architecture only" 設(shè)置為 NO。
查看各個(gè) iOS 設(shè)備支持的 Architecture 類型。link
App 支持的 iOS 系統(tǒng)版本,和當(dāng)前設(shè)備系統(tǒng)版本不符;
設(shè)備上已經(jīng)安裝了 App,且已經(jīng)安裝的 App 和將要安裝的 App 是用不同證書打包的;
網(wǎng)絡(luò)中斷或異常
關(guān)于更多的異常可以參見蒲公英 文檔中心
實(shí)現(xiàn)持續(xù)集成
可以通過 Jenkins、Travis CI 實(shí)現(xiàn)持續(xù)集成。也可以通過 fastlane 快速打包,并在蒲公英發(fā)布成功后發(fā)出通知,比如 釘釘、郵件以通知其他人。
具體見蒲公英文檔中心
TestFlight
TestFlight 概述
TestFlight 現(xiàn)在是蘋果的官方測(cè)試軟件,以郵件形式告知測(cè)試人員版本變化,同時(shí)可以收集測(cè)試信息,可以在應(yīng)用發(fā)布到 App Store 之前收到寶貴的反饋。 只要提供郵箱,任何人都可以成為測(cè)試人員,不過最多可以添加 10,000 名(外部)測(cè)試人員。
使用
使用 TestFlight 前,需要上傳應(yīng)用的測(cè)試版本到 iTunes Connect,然后在 iTunes Connect 中添加測(cè)試人員姓名和電子郵箱。測(cè)試人員將為 iOS, watchOS,tvOS 安裝 testflight 程序。
基本流程是:
1、 iTunes Connect 構(gòu)建版本;
2、上傳測(cè)試應(yīng)用到 iTunes Connect;
3、iTunes Connect 審核;
4、添加測(cè)試人員;
5、測(cè)試人員安裝 TestFlight App;
6、審核成功后,測(cè)試人員收到郵件,開始安裝測(cè)試。
需要說明的是 第 2 步中的審核,并不是 App
Store 的審核。第一次構(gòu)建版本需要審核,之后的版本可能不需要審核,或?qū)徍怂俣葧?huì)很快。
測(cè)試期間,所有應(yīng)用內(nèi)購(gòu)買都是免費(fèi)的。
測(cè)試人員
TestFlight 測(cè)試人員有兩種角色:
-
內(nèi)部測(cè)試人員
可以邀請(qǐng)多達(dá) 25 名內(nèi)部測(cè)試人員。這些人員可以在 iTunes Connect 被分配管理員、開發(fā)人員、營(yíng)銷人員等角色。每個(gè)人員可以測(cè)試多達(dá) 30 個(gè)設(shè)備。內(nèi)部人員可以訪問所有用于測(cè)試的版本。
-
外部測(cè)試人員
可以邀請(qǐng)多達(dá) 10,000 名外部測(cè)試人員??梢詫⑼獠繙y(cè)試人員組織到自定義組中,并與每個(gè)組共享不同的構(gòu)建。在外部測(cè)試之前,應(yīng)用程序必須通過Beta應(yīng)用程序?qū)彶?/strong>,以確保其符合完整的 App Store審查指南。只有beta版本的第一個(gè)版本需要全面審查。
支持的應(yīng)用
一次最多可測(cè)試 100 個(gè)應(yīng)用程序,內(nèi)部或外部應(yīng)用程序,并且構(gòu)建版在上傳后的 90 天內(nèi)保持活動(dòng)狀態(tài)。TestFlight 同時(shí)支持 iOS 應(yīng)用程序,watchOS 應(yīng)用程序,tvOS 應(yīng)用程序和 iMessage 應(yīng)用程序的多個(gè)版本。
具體見 Apple TestFlight - Apple Developer
總結(jié)
簡(jiǎn)單總結(jié)下,在不考慮 企業(yè)蘋果賬號(hào)無(wú)限設(shè)備安裝 情況下,可以從以下幾點(diǎn)衡量蒲公英和 TestFlight。具體使用哪種方式還是看公司或個(gè)人需要。
-
支持設(shè)備數(shù)量
蒲公英有證書設(shè)備數(shù)量限制,最多 100 臺(tái)設(shè)備。而且要獲取 UDID,不方便外部人員使用,可以公司內(nèi)部小范圍使用。
TestFlight 可添加 10,000 名外部測(cè)試人員,基數(shù)比較大。而且只需要郵箱即可,會(huì)自動(dòng)通過郵件通知,不需要集成。內(nèi)部測(cè)試人員可以集中在公司內(nèi)部,外部測(cè)試人員沒有限制。
-
使用復(fù)雜度
蒲公英上傳比較方便,不需要審核。測(cè)試人員也不需要安裝 App,只需要掃碼就可以。可以短時(shí)間內(nèi)快速更新構(gòu)建版本。
TestFlight 需要上傳到 iTunes Connect,并且對(duì)外測(cè)試時(shí),第一次構(gòu)建需要全面審核。而且測(cè)試人員需要安裝 TestFlight App。適合在 App Store 上架前測(cè)試收集 App 運(yùn)行情況。不適合短時(shí)間內(nèi)快速的更新版本構(gòu)建。
-
版本兼容性
兩者都可以測(cè)試多個(gè)構(gòu)建版本。
-
時(shí)效性
蒲公英基礎(chǔ)用戶的應(yīng)用有 90 天的有效期,并且基礎(chǔ)用戶不能續(xù)簽。高級(jí)用戶 365 天,專業(yè)用戶不限。
TestFlight 也是有 90 天測(cè)試時(shí)長(zhǎng),之后就不能再打開測(cè)試版本??梢詮?App Store 中下載,或者構(gòu)建新的測(cè)試版本。