react native打包apk

前言

最近自己的react native app已經完成了,博主想將其打包成android apk運行在安卓端的手機上。然後遇到了一系列的問題。經過一段時間的踩坑,已經成功打包成apk文件並在手機端正常運行和顯示。下面介紹一下react native打包成android apk的原理和步驟。

基本原理

react native程序在調試的時候,在虛擬機端是通過連接本地node服務來獲取js文件,所以可以實現熱加載。但是要打包成apk時,需要將這些js文件打包成bundle包,當做android的運行資源。放置在assets目錄下(離線包的方式)。


所以apk打包的過程是先將js文件打包成bundle包,然後再將程序打包成apk文件。

bundle打包

1.啓動sever,即本地的node服務(之前調試過程中獲取js文件的服務),在工程主目錄下啓動

npm start

2.創建bundle包存放目錄

mkdir -p android/app/src/main/assets

注:可以手動創建

3.打包bundle

curl -k"http://localhost:8081/index.android.bundle">android/app/src/main/assets/index.android.bundle

注:從node服務拉取bundle包並存放到目標目錄下

4.配置bundle運行環境

react-native bundle --entry-file index.js --bundle-output ./android/app/src/main/assets/index.android.jsbundle --platform android --assets-dest ./android/app/src/main/res/ --dev false

注:上述步驟的作用是配置入口文件、平臺等。如果缺少上述的步驟,會報錯,找不到入口文件。

APK打包

1.生成簽名文件

使用keyTool工具生成簽名文件,在jdk安裝目錄的bin\下運行

keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
詳細可參考官網:https://facebook.github.io/react-native/docs/signed-apk-android.html

-alias 後跟着別名,要記住這個別名,因爲在項目中要進行配置,後面會讓輸入密碼,也要記住,同樣在後面配置中會用到。

運行完後,會在當前目錄下出現my-release-key.keystore的文件,即簽名文件。記住文件路徑或將此文件導入到android/app目錄下。

注:要保護你的簽名文件私有,不要將其一起提交給版本控制工具(即暴露出去)

2.項目中配置簽名文件信息

    1)在android/gradle.properties中配置

MYAPP_RELEASE_STORE_FILE=my-example-key.keystore            (---簽名文件名)
MYAPP_RELEASE_KEY_ALIAS=my-example-alias                    (---簽名名稱)
MYAPP_RELEASE_STORE_PASSWORD=123456                         (---倉庫密碼)
MYAPP_RELEASE_KEY_PASSWORD=123456                           (---key密碼)

    2)在android/app/build.graddle中配置

在androdi/app/build.graddle裏面配置
  signingConfigs {
    release {
      storeFilefile ("簽名文件路徑")
      storePassword "倉庫密碼"
      keyAlias "簽名名稱"
      keyPassword "key密碼"
            }
        }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release 
        }
    }
3.打包生成簽名的apk

進入android目錄,執行:

gradlew.bat assembleRelease

或者:

gradle assembleRelease
注:生成的APK文件在/android/app/build/outputs/apk下,去手機端安裝你的app吧
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章