React-narice安卓打包流程

**1. 生成簽名密鑰

在項目的 android/app 目錄下生成簽名密鑰的步驟:

  1. 打開終端或命令提示符:導航到您的 React Native 項目的 android/app 目錄。

  2. 運行以下命令生成密鑰庫文件

keytool -genkeypair -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
?

?

參數說明:

  • -keystore:指定生成的密鑰庫文件名。

  • -alias:為密鑰指定別名。

  • -keyalg:指定加密算法,這里使用 RSA。CSDN博客

  • -keysize:指定密鑰長度,通常為 2048。

  • -validity:指定密鑰的有效期(天),例如 10000 天。

將生成的 my-release-key.keystore 文件放入 android/app 目錄中。博客園

效果展示 (內容自己輸入自己記住):

2. 配置簽名信息

android/app/build.gradle 文件中,添加簽名配置:博客園

android {...signingConfigs {release {storeFile file("my-release-key.keystore")storePassword "your-store-password"keyAlias "my-key-alias"keyPassword "your-key-password"}}buildTypes {release {...signingConfig signingConfigs.release}}
}

?

注意:storePasswordkeyPassword 替換為您在生成密鑰時設置的密碼。

并且有了signingConfig signingConfigs.release就要注釋掉原有的

3. 生成發布版本的 APK

在項目根目錄下,運行以下命令:

cd android
./gradlew assembleRelease
注意:在windos里用: gradlew.bat assembleRelease命令

?

此命令將在 android/app/build/outputs/apk/release/ 目錄下生成 app-release.apk 文件。

4. 將 APK 安裝到手機

確保手機已開啟 USB 調試模式,并連接到電腦。然后運行:

adb install android/app/build/outputs/apk/release/app-release.apk

把這個apk文件用qq發到手機 然后點擊安裝就行

成功后,您即可在手機上找到并運行該應用。

注意事項

  • 簽名密鑰的保存: 請妥善保存生成的 my-release-key.keystore 文件和相關密碼信息,后續應用更新需要使用相同的簽名。博客園

  • 測試發布版本: 在發布前,建議在多種設備上測試生成的 APK,以確保兼容性和穩定性。

按照上述步驟,您即可將 React Native 項目打包成 APK 并安裝到手機上運行。

前端打包和上線流程對于動態數據和靜態數據來說是相同的。區別在于:

  • 數據來源: 靜態數據是直接寫在代碼里的,動態數據則是通過接口獲取。

  • 代碼邏輯: 靜態數據通常直接作為變量導入或嵌入,而動態數據通過 API 請求獲取和渲染。


一、打包和上線流程(動態數據和靜態數據相同)

  1. 安裝依賴:

    npm install

    yarn install
  2. 配置環境變量:

    • 在項目根目錄創建或修改 .env.production 文件:

      REACT_APP_API_URL=https://api.example.com
    • 在代碼中使用環境變量:

      const apiUrl = process.env.REACT_APP_API_URL;
      fetch(`${apiUrl}/products`).then((res) => res.json()).then((data) => console.log(data));
  3. 打包:

    npm run build

    yarn build
    • 打包后生成的靜態文件在 build/ 文件夾中。

  4. 部署到服務器:

    • 上傳打包文件:將 build/ 文件夾中的所有文件上傳到服務器。

    • 服務器配置:使用 Nginx、Apache 或其他 Web 服務器托管靜態文件。

      • Nginx 示例配置:

        server {listen 80;server_name yourdomain.com;root /var/www/html/build;index index.html;
        ?location / {try_files $uri /index.html;}
        }
    • 重啟服務器:

      sudo systemctl restart nginx
  5. 訪問前端項目: 打開瀏覽器,訪問 http://yourdomain.com


二、動態數據打包和上線注意事項:

  1. 環境變量:

    • 開發環境:

      REACT_APP_API_URL=http://localhost:5000
    • 生產環境:

      REACT_APP_API_URL=https://api.yourdomain.com
    • 在代碼中根據環境變量來請求:

      const apiUrl = process.env.REACT_APP_API_URL;
      fetch(`${apiUrl}/products`);
  2. CORS(跨域)問題:

    • 如果前端和后端不在同一個域名下,可能會遇到跨域問題。

    • 解決方法:

      • 在后端添加 CORS 支持:

        const express = require('express');
        const cors = require('cors');
        const app = express();
        ?
        app.use(cors());
        app.get('/api/products', (req, res) => {res.json({ name: 'Apple', price: 10 });
        });
        ?
        app.listen(5000, () => console.log('Server running on port 5000'));
      • Nginx 反向代理:

        nginx復制編輯location /api/ {proxy_pass http://localhost:5000/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;
        }
  3. 接口請求測試:

    • 本地測試: 確保在開發環境中能正常請求接口數據。

    • 線上測試: 上線后通過瀏覽器開發者工具檢查接口請求是否成功。

  4. 接口地址修改:

    • 打包前一定要修改 API 地址為生產環境地址,避免上線后依然請求本地數據。


三、總結:

  • 打包上線流程一致:靜態數據和動態數據的前端項目在打包和上線流程上沒有區別。

  • 配置環境變量:開發和生產環境要使用不同的 API 地址。

  • 后端接口準備:上線前確認后端服務正常運行,且能通過生產環境訪問。

  • 跨域問題解決:生產環境中如果前后端分離,跨域配置一定要正確。

  • 線上測試驗證:上線后要逐一檢查接口請求和數據展示,確認動態數據是否正常加載。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/900422.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/900422.shtml
英文地址,請注明出處:http://en.pswp.cn/news/900422.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

嵌入式AI開源生態指南:從框架到應用的全面解析

嵌入式AI開源生態指南:從框架到應用的全面解析 引言 隨著人工智能技術的迅速發展,將AI能力部署到邊緣設備上的需求日益增長。嵌入式AI通過在資源受限的微控制器上運行機器學習模型,實現了無需云連接的本地智能處理,大幅降低了延…

深度學習中模型量化那些事

在深度學習中模型量化可以分為3塊知識點,數據類型、常規模型量化與大模型量化。本文主要是對這3塊知識點進行淺要的介紹。其中數據類型是模型量化的基本點。常規模型量化是指對普通小模型的量化實現,通常止步于int8的量化,絕大部分推理引擎都…

Redis-list類型

這里只是介紹命令使用 列表是用來存儲多個有序的字符串 可以用來充當棧和隊列的角色 列表特點: 列表中的元素是有序的,可以通過索引下標來獲取某個元素或者某個范圍的元素 獲取和刪除有區別 元素可以重復 命令 LPUSH 將一個或者多個元素從左側放入到list中(頭插法) lp…

Business English Certificates (BEC) 高頻詞匯背誦

Business English Certificates {BEC} 高頻詞匯背誦 References Cambridge English: Business Certificates, also known as Business English Certificates (BEC), are a suite of three English language qualifications for international business. abandon /??bnd?n/ …

第十四屆藍橋杯省賽真題解析(含C++詳細源碼)

第十四屆藍橋杯省賽 整數刪除滿分思路及代碼solution1 (40% 雙指針暴力枚舉)solution 2(優先隊列模擬鏈表 AC) 冶煉金屬滿分代碼及思路 子串簡寫滿分思路及代碼solution 1(60% 雙指針)solution 2&#xff0…

AI Agent開發大全第二十一課-如何開發一個MCP(從0開發一個MCP Client)

開篇 上一章《AI Agent開發大全第二十課-如何開發一個MCP(從0開發一個MCP Server)》里我們講了如何從0開始開發一個MCP Server。可以看到文中大量細節為MCP發明者官網Claude都不曾或者是遺漏的,而且還有那么多點遺漏,想要真正要在企業生產級環境使用MCP是需要做分布式開發的…

TypeScript面試題集合【初級、中級、高級】

初級面試題 什么是TypeScript? TypeScript是JavaScript的超集,由Microsoft開發,它添加了可選的靜態類型和基于類的面向對象編程。TypeScript旨在解決JavaScript的某些局限性,比如缺乏靜態類型和基于類的面向對象編程&#xff0c…

無錫無人機駕駛證培訓費用

無錫無人機駕駛證培訓費用,隨著科技的迅速發展,無人機在眾多行業中發揮著舉足輕重的作用。從影視制作到農業監測,再到物流運輸與城市規劃,無人機的應用場景不斷擴展,因此越來越多的人開始意識到學習無人機駕駛技能的重…

2181、合并零之間的節點

2181、[中等] 合并零之間的節點 1、問題描述: 給你一個鏈表的頭節點 head ,該鏈表包含由 0 分隔開的一連串整數。鏈表的 開端 和 末尾 的節點都滿足 Node.val 0 。 對于每兩個相鄰的 0 ,請你將它們之間的所有節點合并成一個節點&#xff…

相機的曝光和增益

文章目錄 曝光增益增益原理主要作用增益帶來的影響增益設置與應用 曝光 參考:B站優致譜視覺 增益 相機增益是指相機在拍攝過程中對圖像信號進行放大的一種操作,它在提高圖像亮度和增強圖像細節方面起著重要作用,以下從原理、作用、影響以…

小飛電視 2.7.0 | 高清秒播無卡頓的電視直播軟件

小飛電視采用了流行的天光YY殼進行二次開發,內置了熱門的肥羊源。更新后在加載速度和播放速度上有了顯著提升,并提供了豐富的內容和各種分類欄目,包括4K和8K頻道以及經典的直播內容如虎芽、斗魚、歪歪等。該軟件的最大特點是其穩定性和無廣告…

【Python爬蟲高級技巧】BeautifulSoup高級教程:數據抓取、性能調優、反爬策略,全方位提升爬蟲技能!

大家好,我是唐叔!上期我們聊了 BeautifulSoup的基礎用法 ,今天帶來進階篇。我將分享爬蟲老司機總結的BeautifulSoup高階技巧,以及那些官方文檔里不會告訴你的實戰經驗! 文章目錄 一、BeautifulSoup性能優化技巧1. 解析…

【愚公系列】《高效使用DeepSeek》055-可靠性評估與提升

??【技術大咖愚公搬代碼:全棧專家的成長之路,你關注的寶藏博主在這里!】?? ??開發者圈持續輸出高質量干貨的"愚公精神"踐行者——全網百萬開發者都在追更的頂級技術博主! ?? 江湖人稱"愚公搬代碼",用七年如一日的精神深耕技術領域,以"…

C# Winform 入門(12)之制作簡單的倒計時

倒計時效果展示 控件展示 以下均是使用label來形成的 label 的 BorderStyle:Fixed3D ForeColor:Red Blackground:Black label 的屬性 Name: txtyear txtmonth txtday txttime txtweek txtDays txtHour txtM…

edge webview2 runtime跟Edge瀏覽器軟件安裝包雙擊無反應解決方法

軟件安裝報錯問題有需要遠程文章末尾獲取聯系方式,可以幫你遠程處理各類安裝報錯。 一 、edge webview2 runtime跟Edge瀏覽器軟件安裝包雙擊無反應 在安裝edge webview2 runtime跟Edge瀏覽器雙擊無反應沒有出現安裝界面。這個可能是 新版本的Edge WebView2 Runti…

TDengine 從入門到精通(2萬字長文)

目錄 第一章:走進 TDengine 的世界 TDengine 是個啥? TDengine 的硬核特性 性能炸裂 分布式架構,天生可擴展 SQL 用起來賊順手 寫入方式花樣多 內置緩存,省心又省力 TDengine 能干啥? 智能制造 能源管理 物聯網平臺 工業大數據 第二章:上手 TDengine:安裝與…

keil5忽略警告

目錄 前言 風險不多做贅述。強迫癥患者使用。警告有時候就是問題關鍵,被屏蔽了就不會在意。小心使用 環境: 芯片:STM32F103C8T6 Keil:V5.35.0.2 一、示例 警告內容如下: 二、解決辦法 1.先看這位 MDK-Keil AC6 …

【Linux】iptables命令的基本使用

語法格式 iptables [-t 表名] 管理選項 [鏈名] [條件匹配] [-j 目標動作或跳轉]注意事項 不指定表名時,默認使用 filter 表不指定鏈名時,默認表示該表內所有鏈除非設置規則鏈的缺省策略,否則需要指定匹配條件 設置規則內容 -A&#xff1a…

MyBatis查詢語句專題、動態SQL、MyBatis的高級映射及延遲加載

一、MyBatis查詢語句專題 模塊名:mybatis-008-select 打包方式:jar 引入依賴:mysql驅動依賴、mybatis依賴、logback依賴、junit依賴。 引入配置文件:jdbc.properties、mybatis-config.xml、logback.xml 創建pojo類&#xff1a…

Visual Studio Code SSH 連接超時對策( keep SSH alive)

文章目錄 問題解決方法一&#xff1a;配置服務端關于ClientAliveInterval和ClientAliveCountMax1、打開終端&#xff0c;打開SSH配置文件&#xff1a;輸入以下命令&#xff1a;2、打開配置文件后&#xff0c;添加以下內容&#xff1a;3、添加后&#xff0c;Esc按 <Enter>…