簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網 我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732 ...
簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網
我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732981
【之前我寫過一些列關於expo和rn入門配置的東i西,大家可以點擊這裡查看:從零學習rn開發】
相關文章:
Expo大作戰(一)--什麼是expo,如何安裝expo clinet和xde,xde如何使用
Expo大作戰(二)--expo的生命周期,expo社區交流方式,expo學習必備資源,開發使用expo時關註的一些問題
Expo大作戰(三)--針對已經開發過react native項目開發人員有針對性的介紹了expo,expo的局限性,開發時項目選型註意點等
Expo大作戰(四)--快速用expo構建一個app,expo中的關鍵術語
Expo大作戰(五)--expo中app.json 文件的配置信息
Expo大作戰(六)--expo開發模式,expo中exp命令行工具,expo中如何查看日誌log,expo中的調試方式
Expo大作戰(七)--expo如何使用Genymotion模擬器
Expo大作戰(八)--expo中的publish以及expo中的link,對link這塊東西沒有詳細看,大家可以來和我交流
接下來就開始擼碼
發佈頻道
介紹
使用Expo中的發佈渠道,通過為用戶提供URL或配置獨立應用程式,向用戶發送不同版本的應用程式。 在下列情況下您應該使用發佈渠
- 你有一個生產應用程式,需要一個測試環境。
- 您有多個版本的應用。
頻道發佈
通過運行發佈您的版本:
exp publish --release-channel <your-channel>
用exp cli。 您的用戶可以在Expo客戶端應用程式中看到此版本,並帶有參數化的URL https://exp.host/@username/yourApp?release-channel= <您的頻道>。 如果您不指定頻道,您將發佈到預設頻道。
頻道建立(Build with Channels)
通過運行構建您的獨立應用程式
exp build:ios --release-channel <your-channel>
exp build:android --release-channel <your-channel>
用exp cli。 生成的二進位文件只會提取在指定頻道下發佈的發佈。 如果您不指定頻道,則您的二進位文件將從預設頻道提取發佈。
從代碼訪問頻道
您可以使用清單對象中的releaseChannel欄位訪問發佈版本的頻道。
Expo.Constants.manifest.releaseChannel在開發模式下不存在。它確實存在,但是當你明確地發佈/構建它時(It does exist, however when you explicitly publish / build with it.)。
示例工作流程
考慮一種情況,即您有一個用於在Expo Client上進行測試的Staging堆棧,以及一個用於推送TestFlight的生產堆棧,然後將其推廣到AppStore。
在Staging堆棧上,運行exp publish --release-channel staging。您的測試用戶可以通過在URL的查詢參數中指定頻道(例如https://exp.host/@username/yourApp?release-channel=staging),然後在其中打開URL來查看應用的分期版本網頁瀏覽器,最後用Expo客戶端掃描QR碼。或者,他們可以直接在移動設備上打開該URL。
在生產堆棧上,通過運行exp publish --release-channel prod-v1釋放您的應用程式的v1版本。您可以通過運行exp build來將此版本的應用程式構建到獨立的ipa中:ios --release-channel prod-v1。您可以發佈到prod-v1頻道,將更新推送到您的應用。獨立應用程式將使用prod-v1頻道上最新的相容版本進行更新。
如果你有一個你不想讓V1用戶獲得的新版本,通過運行exp publish --release-channel prod-v2並使用exp build:ios --release-channel prod-v2構建它,發佈你的應用的第2版。使用prod-v2 ipa的用戶只會從該頻道獲取發行版。
您可以繼續使用exp publish --release-channel prod-v1更新您的應用v1,未在Apple App Store中更新到最新prod-v2 ipa的用戶將繼續接收最新的prod-v1版本。
通過ExpoKit使用發行渠道
由於exp build不適用於ExpoKit項目,因此您可以通過修改EXShell.plist(iOS)或Constants.java(Android)中的releaseChannel項來手動編輯本機項目的發佈頻道。
使用發佈渠道進行環境變數配置
環境變數不是顯式存在的,但是您可以利用發佈渠道來實現這一點!
假設你有一個釋放這樣的構建的工作流程:
exp publish --release-channel prod-v1
exp publish --release-channel prod-v2
exp publish --release-channel prod-v3
exp publish --release-channel staging-v1
exp publish --release-channel staging-v2
您可以創建一個函數來查找特定版本並設置正確的變數。
function getApiUrl(releaseChannel) { if (releaseChannel === undefined) return App.apiUrl.dev // since releaseChannels are undefined in dev, return your default. if (releaseChannel.indexOf('prod') !== -1) return App.apiUrl.prod // this would pick up prod-v1, prod-v2, prod-v3 if (releaseChannel.indexOf('staging') !== -1) return App.apiUrl.staging // return staging environment variables }當然這一節內容還有很多,至於發佈頻道這個介紹,我也理解不透徹,大家可以轉移到官網詳細瞭解!
下一張繼續介紹,這一篇主要介紹了:expo中的Release channels,接下來會翻譯expo中的分離,以及分離後的項目如何部署,最後翻譯expo的sdk api,然後expo大作戰系列就終結了!歡迎大家關註我的微信公眾號,這篇文章是否被大家認可,我的衡量標準就是公
眾號粉絲增長人數。歡迎大家轉載,但必須保留本人博客鏈接!