Win7平臺(tái)下React-Native開發(fā)之Android項(xiàng)目打包發(fā)布流程

一、bundle文件

React-Native開發(fā)步驟中,有一個(gè)步驟是使用命令 react-native start 去啟動(dòng)一個(gè)基于Node.js的服務(wù),名字為packager。這個(gè)packager的主要功能是:

1、監(jiān)視當(dāng)前目錄下相關(guān)文件的改動(dòng);

2、監(jiān)聽在本機(jī)的8081(默認(rèn))端口,為正確的請(qǐng)求提供相應(yīng)的bundle文件??偨Y(jié)一點(diǎn)來(lái)說就是:bundle文件是根據(jù)項(xiàng)目目錄下相應(yīng)文件的最新內(nèi)容來(lái)動(dòng)態(tài)生成的,這樣在開發(fā)過程中就能實(shí)時(shí)地觀察我們修改JS文件所帶來(lái)的程序的改變。因?yàn)檫@個(gè)bundle文件就是最后整個(gè)APP的應(yīng)用邏輯,所以,對(duì)于APP打包來(lái)說,關(guān)鍵步驟就在于就是如何把這個(gè)bundle文件作為生成的靜態(tài)文件打包進(jìn)我們的APP中。

二、打包步驟

1、生成密匙

keytool -genkey -v -keystore my-test-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

代碼中的 my-test-key.keystore 和 my-key-alias 替換成需要的名字。記住后續(xù)步驟中輸入的密碼等信息,需要用于第四步驟中的gradle腳本的編寫。

2、創(chuàng)建 assets 文件夾

在項(xiàng)目根目錄下的 /android/app/src/main/ 目錄下創(chuàng)建 assets 文件夾

3、獲取 bundle 文件并保存

首先:確保你在項(xiàng)目根目錄下使用了 react-native start 命令啟動(dòng)了 packager,并可以使用瀏覽器測(cè)試能正確獲取到bundle文件。
  然后:確保你安裝了curl 這個(gè)工具或者其他相同功能的工具。
  最后:在項(xiàng)目根目錄下輸入如下命令:

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

4、添加 gradle 的 keystore 配置

在項(xiàng)目根目錄下的 /android/app 目錄下,找到 build.gradle 文件,在其中添加:

// 在 defaultConfig 后面添加
signingConfigs {
    release {
        storeFile file("/my-test-key.keystore") // 替換成你實(shí)際密匙文件所在位置
        storePassword "步驟1中的密碼"  // 替換成你實(shí)際的密碼
        keyAlias "my-key-alias"    // 替換
        keyPassword "步驟1中的密碼"  // 替換
    }
}
// 修改原來(lái)的配置,主要是加入 signingConfig 這一行
buildTypes {
    release {
        minifyEnabled enableProguardInReleaseBuilds // 記得修改相應(yīng)的功能啟動(dòng)
        proguardFiles fetDefaultProguardFile('proguard-android.txt), 'proguard-rules.pro' 
        signingConfig signingConfigs.release
    }
}

注意:路徑中的 反斜線() 要改成 正斜線(/)。

5、啟用 Proguard 代碼混淆(可選)

Proguard 是一個(gè) Java 字節(jié)碼混淆壓縮工具,可剔除項(xiàng)目文件夾中為使用的部分,有效減少APK的大小。在 build.gradle 文件中,啟動(dòng) Proguard模塊:

def enableProguardInReleaseBuilds = true

6、執(zhí)行打包腳本

首先:進(jìn)入項(xiàng)目根目錄下的 /android/ 目錄中;
  然后:執(zhí)行 gradle assembleRelease 命令。
  注意:如果出現(xiàn)錯(cuò)誤或者沒有安裝 gradle 工具,需要自行安裝 gradle 工具和配置好 GRADLE_HOME 和 PATH,注意和 /android/gradle/wrapper/gradele-wrapper.properties 文件中的版本配置保持一致。也可以使用 gradle clean 清理一下緩存。

7、將APK發(fā)布到各大應(yīng)用市場(chǎng)

我們可以到 /android/app/build/outputs/apk/ 目錄下看到了我們最終發(fā)布版的Apk文件。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,036評(píng)論 25 709
  • Android插件化基礎(chǔ)的主要內(nèi)容包括 Android插件化基礎(chǔ)1-----加載SD上APKAndroid插件化基...
    隔壁老李頭閱讀 7,392評(píng)論 13 48
  • 用React Native開發(fā)好APP之后,如何將APP發(fā)布以供用戶使用呢?一款A(yù)PP的發(fā)布流程無(wú)外乎:簽名打包—...
    CrazyCodeBoy閱讀 10,298評(píng)論 5 223
  • 八點(diǎn)十五分到達(dá)出勤點(diǎn); 10點(diǎn)半之前送回學(xué)校; 保證孩子安全,為孩子點(diǎn)贊,鼓勵(lì)孩子,不代替孩子交流,適當(dāng)?shù)闹笇?dǎo); ...
    Cindy307閱讀 389評(píng)論 0 0
  • 車這東西,需要貴,好用,這是真的,不能只做代駕用的!開的難受 在家休息2天和家人挺開心,就是累!之前幾天積累下來(lái)的...
    DeathKnightR閱讀 264評(píng)論 0 0

友情鏈接更多精彩內(nèi)容