1. 程式人生 > >Expo大作戰(十八)--expo如何發布成獨立應用程序,打包成apk或者ipa,發布到對應應用商店

Expo大作戰(十八)--expo如何發布成獨立應用程序,打包成apk或者ipa,發布到對應應用商店

密鑰 術語 資源 必備 target 必須 ble 反向 keystore

技術分享圖片

簡要:本系列文章講會對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這塊東西沒有詳細看,大家可以來和我交流

更多>>

接下來就開始擼碼


構建獨立應用程序

本指南旨在幫助您創建適用於iOS和Android的expo用程序的獨立二進制文件,並將其提交至Apple App Store和Google Play Store。

構建iOS獨立應用需要Apple開發者帳戶,但構建Android獨立應用不需要Google Play開發者帳戶。如果您想提交給任一應用商店,則需要該商店的開發者帳戶。

閱讀關於部署到應用商店的最佳實踐是一個不錯的主意,以確保您的應用能夠很好地被接入進入Apple和Google市場。

1.安裝exp

XDE目前不包括構建獨立應用程序的選項,因此我們需要exp。運行npm install -g exp

來獲取它。

如果您之前沒有使用過exp,那麽您需要做的第一件事就是使用exp login登錄您的expo賬戶。

Windows用戶必須啟用WSL。我們建議從Windows應用商店挑選Ubuntu。確保至少啟動一次Ubuntu。之後,使用Admin powershell運行:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

2.配置app.json

{
   "expo": {
    "name": "Your App Name",
    "icon": "./path/to/your/app-icon.png",
    "version": "1.0.0",
    "slug": "your-app-slug",
    "sdkVersion": "XX.0.0",
    "ios": {
      "bundleIdentifier": "com.yourcompany.yourappname"
    },
    "android": {
      "package": "com.yourcompany.yourappname"
    }
   }
 }

iOS bundleIdentifier和Android的package字段使用反向DNS表示法,但不必與域相關。將“com.yourcompany.yourappname”替換為適用於您的應用的任何內容。

您可能並不感到驚訝,因為名稱,圖標和版本都是必需的。

slug是你的應用程序的JavaScript發布到的URL名稱。例如:expo.io/@community/native-component-list,其中community是我的用戶名,native-component-list是slug。

sdkVersion告訴expo什麽expo運行版本使用,這對應於一個React本地版本。盡管在示例中列出了“XX.0.0”,但您的app.json中已經有一個sdkVersion,除非您想更新到Expo的新版本,否則不應更改它。

還有其他選項可能需要添加到app.json中。我們只涵蓋了需要的內容。例如,有些人喜歡配置自己的內部版本號,鏈接方案等等。我們強烈建議您閱讀完整規範的app.json配置。這也是您最後一次檢查我們對App Store元數據的建議的機會。

3.開始構建

運行exp build:android或exp build:ios。如果你還沒有為這個項目運行一個包(if you don’t already have a packager running for this project),exp會為你啟動一個。

如果您選擇為Android構建

您第一次構建項目時,系統會詢問您是要上傳密鑰庫還是讓我們為您處理。如果您不知道密鑰庫是什麽,請將其留給我們()。否則,請隨意上傳自己的。

[exp] No currently active or previous builds for this project.

Would you like to upload a keystore or have us generate one for you?
If you dont know what this means, let us handle it! :)

  1) Let Expo handle the process!
  2) I want to upload my own keystore!

註意:如果您選擇第一個選項,然後決定上傳您自己的密鑰庫,我們目前提供一個選項,通過運行exp build:android --clear-credentials,從我們的構建服務器中清除您當前的Android密鑰庫。 這是不可逆的,所以只有在你知道你在做什麽的時候才運行這個命令! 您可以通過運行exp fetch:android:keystore來下載密鑰庫的備份副本。 如果您沒有密鑰庫的本地副本,則無法將新版本的應用發布到Play商店。 您唯一的選擇是生成一個新的密鑰庫並將您的應用程序重新上傳為一個新的應用程序。 您可以詳細了解代碼簽名和密鑰庫在Android文檔中的工作方式。(**)

如果您選擇為iOS構建

您可以選擇讓exp客戶為您創建必要的憑據,同時還有機會提供您自己的覆蓋。 您的Apple ID和密碼在本地使用,永遠不會保存在Expo的服務器上。

[exp] Making sure project is set up correctly...
[exp] Your project looks good!
[exp] Checking if current build exists...

[exp] No currently active or previous builds for this project.
? How would you like to upload your credentials?
 (Use arrow keys)
? Expo handles all credentials, you can still provide overrides
  I will provide all the credentials and files needed, Expo does no validation

我們問您是否希望我們處理您的證書或使用您自己的證書。 與Android密鑰庫類似,如果您不知道證書是什麽,請讓我們為您處理。 如果您確實需要上傳您自己的證書,我們建議您按照制作p12文件的優秀指南進行操作。

註意:Expo構建服務支持普通的App Store分發(distribution )以及企業分發(distribution )。 要使用後者,您必須是“Apple開發人員企業計劃”的成員。 只有普通的Apple開發人員帳戶只能構建可提交給Apple App Store的應用程序,只有企業開發人員帳戶才能構建可使用企業分發方法分發的應用程序。 當您調用exp build:ios時,請使用--apple-enterprise-account標誌。 目前,獨立應用程序構建器不支持“ad hoc”分發證書或設置配置文件。

4.等待它完成建設(Wait for it to finish building)

我們將打印一個您可以訪問的網址(例如expo.io/builds/some-unique-id)以查看您的構建日誌。或者,您可以通過運行exp build:status來檢查它。完成後,您會看到.apk(Android)或.ipa(iOS)文件的網址 - 這是您的應用。將鏈接復制並粘貼到瀏覽器中以下載文件。

註意:我們為iOS啟用bitcode,因此iOS的.ipa文件比用戶可用的最終App Store下載要大得多。有關更多信息,請參閱應用程序細化。

5.在您的設備或模擬器上測試它(Test it on your device or simulator)

您可以將.apk拖放到您的Android模擬器中。這是測試構建成功的最簡單方法。但它不是最令人滿意的。

  • 要在Android設備上運行它,請確保您已安裝了與adb一起安裝的Android平臺工具,然後運行adb install app-filename.apk,並在設備上啟用USB調試並插入設備。
  • 要在iOS模擬器上運行它,首先通過運行exp build:ios -t simulator來構建您的expo項目,然後使用運行exp build:status時完成的鏈接下載tarball。通過運行tar -xvzf your-app.tar.gz解壓縮tar.gz。然後,您可以通過啟動iOS Simulator實例運行它,然後運行xcrun simctl install booted <app path>和xcrun simctl launch booted <app identifier>。
  • 要使用Apple TestFlight測試設備版本,請將.ipa文件下載到本地機器。您已準備好將您的應用上傳到TestFlight。在TestFlight中,點擊加號圖標並創建一個新的應用程序。確保你的bundleIdentifier匹配你在exp.json中放置的內容。

註意:你將不會在這裏看到你的構建!您需要先使用Xcode或Application Loader來上傳您的IPA。一旦你這樣做了,你可以在Activity下檢查你的版本的狀態。處理應用程序可能需要10-15分鐘才能顯示可用的構建版本。

6.將其提交給相應的商店

我們並未自動執行此步驟,但此時您應該能夠遵循Apple和Google文檔向獨立商店提交您的獨立二進制文件。有關如何擦亮應用並確保其已被Apple和Google市場接受的更多信息(or more info on how to polish your app and ensure it is accepted to the Apple and Google marketplaces),請閱讀部署到應用商店的指南。

7.更新你的應用程序

大多數情況下,當您想更新應用時,只需從exp或XDE再次發布即可。您的用戶將在下次打開應用程序時下載新的JS。為確保您的用戶擁有下載JS更新的無縫體驗,您可能需要啟用後臺JS下載。但是,有幾個原因可能會導致您重建並重新提交本機二進制文件:

  • 如果您想更改原生元數據,如應用程序的名稱或圖標
  • 如果你升級到一個更新的sdkVersion你的應用程序(這需要新的本地代碼)

為了跟蹤這一點,你也可以更新二進制的versionCode和buildNumber。瀏覽app.json文檔以了解您可以更改的所有屬性,例如圖標,深層鏈接url方案,手機/平板電腦支持等等。

如果您在此過程中遇到問題,我們非常樂意幫助!加入我們的論壇,讓我們知道你是否有任何問題。


下一張繼續介紹,這一篇主要介紹了:expo如何發布成獨立應用程序,打包成apk或者ipa,發布到對應應用商店, 歡迎大家關註我的微信公眾號,這篇文章是否被大家認可,我的衡量標準就是公眾號粉絲增長人數。歡迎大家轉載,但必須保留本人博客鏈接!

技術分享圖片

Expo大作戰(十八)--expo如何發布成獨立應用程序,打包成apk或者ipa,發布到對應應用商店