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

来源:https://www.cnblogs.com/gdsblog/archive/2018/03/14/8570219.html
-Advertisement-
Play Games

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

更多>>

接下來就開始擼碼


構建獨立應用程式

本指南旨在幫助您創建適用於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 don't 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,發佈到對應應用商店, 歡迎大家關註我的微信公眾號,這篇文章是否被大家認可,我的衡量標準就是公眾號粉絲增長人數。歡迎大家轉載,但必須保留本人博客鏈接!

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 參考博客 "MySQL資料庫備份(linux)" "MySQL mysqldump數據導出詳解" 備份地址 https://files.cnblogs.com/files/jxner/MySQL%E6%95%B0%E6%8D%AE%E5%BA%93%E5%A4%87%E4%BB%BD%EF%BC%8 ...
  • 1、下載並安裝好FineReport9.0和SQL Server 2016 2、開始——>所有應用——>Microsoft SQL Server 2016——>SQL Server 2016 Master Data Services Configuration Manager(單擊打開) 3、創建數 ...
  • 在資料庫的運用過程中,我們時常會碰到根據身份證號碼來獲取當前的年齡,今天我在這裡寫了一個函數,就是關於獲取年齡的 下麵是函數調用的SQL語句: ...
  • SQL server數據類型 String類型: 數據類型: 描述 存儲 char(n) 固定長度的字元串。最多 8,000 個字元。定義類型為char(5),那麼就表示該類型可以存儲5個字元,即使存入2個字元,剩餘的3個字元也會用空格補齊。 Defined width varchar(n) 可變長 ...
  • 2015年以來,Android開發領域里對熱修複技術的討論和分享越來越多,同時也出現了一些不同的解決方案,如QQ空間補丁方案、阿裡AndFix以及微信Tinker(Bugly sdk也集成Tikner熱更新)和阿裡最新出品Sophix.它們在原理各有不同,適用場景各異。不過從技術上來說多數熱修複框架 ...
  • 簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網 我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732 ...
  • 簡要:本系列文章講會對expo進行全面的介紹,本人從2017年6月份接觸expo以來,對expo的研究斷斷續續,一路走來將近10個月,廢話不多說,接下來你看到內容,講全部來與官網 我猜去全部機翻+個人修改補充+demo測試的形式,對expo進行一次大補血!歡迎加入expo興趣學習交流群:597732 ...
  • Retrofit提供了兩個兩種定義HTTP請求頭欄位的方法即靜態和動態。靜態頭不能改變為不同的請求,頭的鍵和值是固定的且不可改變的,隨著程式的打開便已固定。 動態添加 @HeaderMap 靜態添加 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...