1. 程式人生 > >react-native 打包 出apk

react-native 打包 出apk

-a tps 終端 ive 註意 用戶 alt rdquo windows

先上步驟:

一、 生成簽名文件(my-release-key.keystore文件)

Android要求所有應用都有一個數字簽名才會被允許安裝在用戶手機上

1. 在項目目錄下運行如下命令:

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

2. 輸入密鑰庫口令:(如圖,在輸入上面的命令後,會有如下的要求)

  要求至少6個字符,一定要記住輸入的內容(輸入的時候 終端上是不顯示輸入的內容的)

  筆者在第一次打包的時候就是懵逼的,看著空蕩蕩的輸入區域,以為鍵盤壞了,一頓狂按,發現回車還能用,然後在後面需要密鑰的時候就。。。

  註意:請記得妥善地保管好你的密鑰庫文件,不要上傳到版本庫或者其它的地方。(React中文網提示)

3. 姓名、地址這些的就可以直接回車跳過了,在最後顯示:“是否正確” 的時候 選擇 是 就可以了

技術分享圖片

4. 生成簽名文件my-release-key.keystore(會在項目目錄下生成)

技術分享圖片

二、 將項目目錄下生成的my-release-key.keystore文件,拷到 android/app 目錄下

三、修改android裏面的代碼

1. 在android/gradle.properties文件中,加入如下代碼:(此處就需要剛剛輸入的密鑰了)

MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=******
MYAPP_RELEASE_KEY_PASSWORD=******

2. 在android/app/build.gradle文件在添加如下代碼:

android {
    ...

    defaultConfig {
        ...
    }
    //此段是新增的
    signingConfigs {
        release {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
        }
    }
    splits {
       ...
    }
    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile(
"proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release //新增此句 } } ... }

註意: 把 def enableProguardInReleaseBuilds = false 改成 true

啟用Proguard代碼混淆來縮小APK文件的大小(保護源代碼,縮小APK包)
Proguard是一個Java字節碼混淆壓縮工具,它可以移除掉React Native Java (和它的依賴庫中)中沒有被使用到的部分,最終有效的減少APK的大小。

(此處解釋來自:windows下react-native android打包筆記)

四、最後,我們就可以執行打包命令了(以後再打包,只需要執行此命令)

gradlew assembleRelease

win10系統的powershell裏面執行後,會報錯誤:

技術分享圖片

改為如下命令即可

./gradlew assembleRelease

最終,在不報錯的情況下,會在 android\app\build\outputs\apk\release目錄下生成app-release.apk這個最終的打包文件

react-native 打包 出apk