1.生成簽名密鑰。
? ? ? 進(jìn)入指定目錄下?以管理員身份運(yùn)行? cmd窗口,然后進(jìn)入jdk的bin文件目錄,一般會(huì)在C:\Program Files\Java\jdkx.x.x_x\bin,,不然最后創(chuàng)建keystore文件時(shí)會(huì)提醒拒絕訪問(wèn)
,在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。
按步驟輸入提示的內(nèi)容,都可以隨便輸入,只是些基本信息,到了最后一步要求輸入“該單位的雙字母國(guó)家/地區(qū)代碼是什么?”,會(huì)提示“[否]:”,請(qǐng)輸入"y"然后回車即可,按要求輸入密鑰,及密鑰確認(rèn)(輸入時(shí)不顯示,輸完回車即可)。即可看到生成的keystore文件。
2.將生成的keystore文件放入RN項(xiàng)目的app文件路徑下
3.打開android路徑下的gradle.properties,添加如下代碼
MYAPP_RELEASE_STORE_FILE=“你的keystore文件名字,記得帶.后綴”
MYAPP_RELEASE_KEY_ALIAS=“之前讓你記住的alias”
MYAPP_RELEASE_STORE_PASSWORD=之前設(shè)置的密鑰
MYAPP_RELEASE_KEY_PASSWORD=之前設(shè)置的密鑰
4.打開android\app\build.gradle,
找到?enableProguardInReleaseBuilds=false 改為true(官方文檔沒(méi)說(shuō),但是有的地方說(shuō)了,不知道管用不管用)
找到?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反正是這樣,這個(gè)坑坑了我半天。MacOS不知道是需要斜線還是反斜線。
接下來(lái)還是在build.gradle中 添加signingConfig signingConfigs.release,添加完效果如下。
buildTypes{
release{
......
signingConfig signingConfigs.release
}
}
5.最后在項(xiàng)目根目錄下運(yùn)行命令cd android gradlew assembleRelease
如已經(jīng)進(jìn)入android路徑下 則只需運(yùn)行?gradlew assembleRelease。
官方文檔如下
$ cd android
$ ./gradlew assembleRelease,
window環(huán)境下,無(wú)需輸入$ ./。親測(cè)好用,原理不知。
接下來(lái)就是漫長(zhǎng)的等待,打包過(guò)程比android studio 原生打包還慢,可能會(huì)報(bào)幾個(gè)方法過(guò)時(shí)的錯(cuò)誤。打好的apk包在 項(xiàng)目\android\app\bulid\outputs\apk\release下
完!