React Native打包apk方法及常見問答

注意:如下全部操做都在win7下進行,React Native版本0.54.0
clipboard.pngreact

首先用keytool生成一個簽名密鑰

在Windows上keytool命令放在JDK的bin目錄中(好比默認安裝路徑C:Program FilesJavajdkx.x.x_xbin裏面,或者搜索keytool.exe所在文件夾)
在命令行中輸入如下命令
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
clipboard.pngandroid

這條命令會要求你輸入密鑰庫(keystore)和對應密鑰的密碼,而後設置一些發行相關的信息。所有填寫後,會問你是否正確,按下y和回車便可。該密鑰有效期爲10000天。--alias參數後面的別名是你未來爲應用簽名時所須要用到的,因此記得記錄這個別名。
clipboard.pngwindows

clipboard.png

最後它會在同級目錄裏生成一個my-release-key.keystore的密鑰庫文件。app

添加簽名到項目的gradle配置文件

把剛纔生成的my-release-key.keystore文件複製到你項目中的android/app文件夾裏面
而後打開android/app裏的build.gradle文件,添加以下的簽名配置(應該在109行處下方添加)。密碼與別名請修改爲你本身的gradle

...
android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
        storeFile file("my-release-key.keystore")
        storePassword "密碼"
        keyAlias "keyAlias的名字"
        keyPassword "密碼"
        }
    }
    buildTypes {
        release {
            ...
            signingConfig signingConfigs.release
        }
    }
}
...

clipboard.png

生成發行APK包

將命令行裏的目錄切換到你項目下的android目錄裏,而後執行gradlew assembleRelease開始打包編譯(若在windows的PowerShell環境中,請使用gradlew ./assembleRelease命令)ui

clipboard.png

我這邊執行了4分鐘後,顯示BUILD SUCCESSspa

clipboard.png

apk文件在哪裏?在android\app\build\outputs\apk目錄裏有打包好的apk 任務完成~.net

clipboard.png

其餘常見問題

react native打包出現unable to process incoming event 'ProcessComplete' <ProgressCompleteEvent>
出現這種狀況是由於代碼混淆異常,分析問題後發現in library class Android.text.StaticLayout,因此在混淆文件中加入:(混淆文件在android\app\proguard-rules.pro)命令行

-keep class android.text {* ;}
    -dontwarn android.text.*

若是還不行,能夠試試下方打包命令
打包命令:gradlew.bat assembleRelease --console plain3d

解決Could not find method android() for arguments問題
方法http://blog.csdn.net/xiaoshit...
(android/app裏的build.gradle文件)

其餘常見問題集
https://www.jianshu.com/p/98c...

若是你須要對apk進行混淆打包
編輯android/app/build.gradle
參考資料http://blog.csdn.net/fengyuzh...

def enableProguardInReleaseBuilds = true
相關文章
相關標籤/搜索