ReactNative 安卓打包APK踩坑記錄

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下


完!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。