1.生成簽名密鑰。
? ? ? 進入指定目錄下?以管理員身份運行? cmd窗口,然后進入jdk的bin文件目錄,一般會在C:\Program Files\Java\jdkx.x.x_x\bin,,不然最后創建keystore文件時會提醒拒絕訪問
,在bin文件路徑下輸入下列字符回車(-alias 后面的斜體字是簽名文件的alias,需記住后面需要用)
c:\Program Files\Java\jdk1.8.0_45\bin>keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000。
按步驟輸入提示的內容,都可以隨便輸入,只是些基本信息,到了最后一步要求輸入“該單位的雙字母國家/地區代碼是什么?”,會提示“[否]:”,請輸入"y"然后回車即可,按要求輸入密鑰,及密鑰確認(輸入時不顯示,輸完回車即可)。即可看到生成的keystore文件。
2.將生成的keystore文件放入RN項目的app文件路徑下
3.打開android路徑下的gradle.properties,添加如下代碼
MYAPP_RELEASE_STORE_FILE=“你的keystore文件名字,記得帶.后綴”
MYAPP_RELEASE_KEY_ALIAS=“之前讓你記住的alias”
MYAPP_RELEASE_STORE_PASSWORD=之前設置的密鑰
MYAPP_RELEASE_KEY_PASSWORD=之前設置的密鑰
4.打開android\app\build.gradle,
找到?enableProguardInReleaseBuilds=false 改為true(官方文檔沒說,但是有的地方說了,不知道管用不管用)
找到?signingConfigs{},在下面添加
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file("D:/vueProject/projectTest/android/app/my-release-key.keystore")
storePassword "你的storePassword"
keyAlias "你的keyAlias?"
keyPassword "你的keyPassword?"
}
切記!!!storeFile file()斜線/一定不要輸入成反斜線\,windows反正是這樣,這個坑坑了我半天。MacOS不知道是需要斜線還是反斜線。
接下來還是在build.gradle中 添加signingConfig signingConfigs.release,添加完效果如下。
buildTypes{
release{
......
signingConfig signingConfigs.release
}
}
5.最后在項目根目錄下運行命令cd android gradlew assembleRelease
如已經進入android路徑下 則只需運行?gradlew assembleRelease。
官方文檔如下
$ cd android
$ ./gradlew assembleRelease,
window環境下,無需輸入$ ./。親測好用,原理不知。
接下來就是漫長的等待,打包過程比android studio 原生打包還慢,可能會報幾個方法過時的錯誤。打好的apk包在 項目\android\app\bulid\outputs\apk\release下
完!