簡體   English   中英

如何判斷 React Native 應用程序在哪里通過無線(OTA)/實時更新?

[英]How to tell where React Native app is getting over the air (OTA) / Live updates?

我對 React Native 和 Expo 非常陌生。 我現在被分配到我們公司的移動應用程序上工作。 在 Apple Connect 中進行構建並推送到 Test Flight 時,我注意到我的測試代碼正在通過無線方式更新並上線。 這是個大問題。

我如何知道我的應用是從哪里實時更新的?

我正在使用 Expo 構建工具。 我檢查了app.json文件的 expo 部分中的更新配置。 它看起來像這樣:

"updates": {
      "fallbackToCacheTimeout": 0,
    },

閱讀 Expo 文檔,它說啟用標志默認設置為 true。 我以為是這樣,所以我將啟用設置為 false。

 "updates": {
      "fallbackToCacheTimeout": 0,
      "enabled": false
    },

但是我的push,剛剛更新了app里面的版本號,在app重啟之后就被live push了。

從在線閱讀來看,該行為與 Expo OTA 更新或 Microsoft 的“代碼推送”完全相同。 換句話說,當用戶在關閉后打開應用程序時,它是舊版本。 但是一旦他們重新啟動,應用程序就會更新到新版本。

在推送到我的遠程 git 存儲庫之后,我的構建過程是這樣的:

expo build:ios

然后在構建排隊並構建之后,我下載 URL 並下載.ipa包。 從那里,我使用 Transporter 檢查/上傳捆綁包到測試飛行。 一旦進入試飛,我等到它完成“處理”,然后我回答合規性問題(加密導出)。

而已。 我不會在生產方面創建版本,甚至不會觸碰它。

但是,如果用戶(不是 beta 測試人員 BTW)關閉並打開他們的應用程序幾次,他們會得到那個正在試飛的版本。

我知道這是一個 OTA 更新,因為我從不發出expo build:android命令,但是……我的 android 手機也得到了更新。

我束手無策,試圖找出這個東西在哪里得到更新。 該應用程序的原始開發人員也沒有任何想法(即沒有幫助)。

關於如何判斷事物托管在哪里以及如何更新的任何想法。

您看到生產應用程序更新的原因是因為每次創建新版本時,expo 都會“發布”您的最新版本,它將任何更改 OTA 推送給所有用戶,除非您使用“發布渠道”。

這是支持上述聲明的 expo 文檔:

https://docs.expo.dev/classic/building-standalone-apps/#3-start-the-build

“請注意:當您運行expo build時,Expo 會自動發布您的應用程序(使用expo publish )。為了避免意外使用渠道發布更改到您的生產應用程序,您可能需要。”

https://docs.expo.dev/distribution/release-channels/

一旦您建立了與生產構建分開的發布渠道,您就可以單獨構建,並將 OTA 更新發布到與您已經上線的應用程序分開的單獨構建。

這可能是 go 不用說,但您可以使用expo publish恢復您的生產應用程序。 與您當前的發布渠道設置一樣,這也將更新您的 TestFlight 應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM