為何我的 Fastlane 上傳那麼慢?

自動化

使用自動化工具處理 iOS 的 試飛 分發,是一件很愜意的事情,它能幫你節省很多時間,減少大量人工干預——尤其是像這種需要等很久才需要人工操作一下的事情,雖然並不會讓你覺得很累,但大量的時間就這樣浪費掉了。

使用 快車道 一鍵編譯、上傳,然後等待蘋果服務器處理完成,全自動發布 試飛,本來是一個很棒的操作,但由於網絡環境的變化,我的 fastlane 上傳速度變得越來越慢,最終慢到 100M 帶寬的網絡中,上傳速度只有 10 KB /秒。

重置 itmstransporter

由於 fastlane 實際上是使用 itmstransporter 來進行上傳的,那麼如果你遇到上傳相關錯誤,可以嘗試重置這個工具(當然,在我這個情況下就無法解決問題)

參考文獻:HTTPS://stackoverflow.com/questions/47433541/app-store-upload-is-really-slow-and-hogging-my-internet-connection

itmstransporter 的三種傳輸模式

實際上,itmstransporter 是有三種上傳模式的,這也就是為什麼你在使用 Xcode 手動上傳 app 時,會有一個步驟叫做“協商上傳模式”。但顯然,這個協商功能沒那麼“智能”。

如果你依賴 itmstransporter 的自動選擇(默認就是如此),那麼最快的上傳模式會最先被使用,但一旦這個模式失敗,itmstransporter 就會轉用其他備用方案了(實際上如果再試試,也許還是能用的)

DAV

這個模式是最慢的模式,其實就和直接 http 上傳沒什麼區別(會比web上傳更慢一些),如果你的網絡質量比較差,延遲高等,那麼落到 dav 是沒跑的。

但是,有一點,如果你在公司等有防火牆的網絡環境,那麼 dav 可能是唯一不被封鎖的上傳方式——它不需要特殊端口。

Signiant

這是一個 SaaS 加速傳輸協議,官方宣稱比 http 傳輸快 200%,使用這個協議則需要防火牆開啟 TCP 和 UDP 的 44001 端口,並且 UDP 攻擊防護有可能會對 signiant 造成影響。

葉樹

Aspera 在業內極其出名,很多企業網絡、雲平台都在使用使用 Aspera 家的 fasp 協議快速傳輸數據,它在絕大多數網絡條件下擁有穩定高速傳輸,“通常需要 26 小時將一份體積為24GB的文檔傳輸至世界的另一端,而 Aspera 能做到只需 30 秒”。

同樣,它也要求防火牆開啟 TCP 和 UDP 的 33001 端口,並且 UDP 攻擊防護有可能會對 Aspera 造成影響。

配置

我們的目的就是要讓 fastlane 調用 itmstransporter 時使用 Aspera 進行上傳,避免使用其他兩個協議,如果是直接使用 itmstransporter ,你大可以直接設置參數,但使用 fastlane 該怎麼辦呢?

在你的 upload_to_testflight 上一行,寫 ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-牛逼的Aspera" 即可,這樣,就設定了環境變量,讓 itmstransporter 只使用 Aspera 進行上傳,一旦失敗,則不會再使用其他方式進行嘗試,這樣在上傳時,你就會遇到:

不過,如果你耐心等待,就會發現上傳並沒有停止,最終,你會得到:

另外,上傳的速度也恢復到了巔峰。

如果你真的遇到 Aspera 被防火牆阻止而無法上傳的情況,那麼就吧 Aspera 改成 DAV。

速度優化

更正:對於 fastlane 來說,-k 參數不能使用,似乎是默認腳本已經設定了這個參數,如果使用,你會得到一個錯誤: 選項: "-k" 可以 只要 規定 一旦. 返回 狀態 iTunes的 運輸車 1: 選項: "-k" 可以 只要 規定 一旦.

默認來說,Aspera 不會對上傳進行限速,也就是說它會盡可能利用你的上傳帶寬,但這樣有一個弊端,那就是上傳的時候會導致網絡上行帶寬被佔滿,其他人、其他軟件都無法聯網。所以給 Aspera 增加一個帶寬限制是個不錯的選擇(另外,據說加了帶寬限定後速度反而是略有提升的)。

總之,在 "-牛逼的Aspera" 中增加 -k 參數,後接你期望的帶寬,單位是 bit per second,即 -k 10000 就是 10M 帶寬, -k 200000 就是 200M 帶寬,具體多少合適,這需要你自己去實際測試,這也和你的路由器性能有關。

比如,我要設置 20M 帶寬,那麼最終的代碼就是這樣的:

另: -k 這個參數對 signiant 模式同樣適用,單位和規則都是一樣的。

參考文獻

運輸車用戶指南 1.13

 

本文由 落格博客 原創撰寫:落格博客 » 為何我的 Fastlane 上傳那麼慢?

轉載請保留出處和原文鏈接:https://www.logcg.com/archives/3235.html

關於作者

R0uter

如非聲明,本人所著文章均為原創手打,轉載請註明本頁面鏈接和我的名字。

發表評論

您的電子郵件地址不會被公開. 必填字段標 *