react-native 打包Android Debug/Release APK

除了官網上介紹的生成Apk方法外,自行打包生成也可以。步驟如下:

1.生成Android簽名證書

方法一:使用Android Studio生成,不建議用,打包出的App會出現閃退。

方法二:Dos下進入JDK的bin目錄,運行如下命令:

keytool -genkey -alias android.keystore -keyalg RSA -validity 36500 -keystore android.keystore
(-validity 36500代表有效期天數),命令完成後,bin目錄中會生成android.keystore

示例如下

C:\Program Files (x86)\Java\jdk1.8.0_121\bin>

keytool -genkey -alias android.keystore -keyalg RSA -validity 36500 -keystore d:\android.keystore

(-alias test 生成的keystore別名,-keyalg RSA 加密和數字簽名的算法,-validity 36500 有效天數)

輸入密鑰庫口令:123456
再次輸入新口令:123456
您的名字與姓氏是什麼?
[Unknown]:Jory
您的組織單位名稱是什麼?
[Unknown]:department
您的組織名稱是什麼?
[Unknown]: organization
您所在的城市或區域名稱是什麼?
[Unknown]:ChungKing
您所在的省/市/自治區名稱是什麼?
[Unknown]: ChungKing
該單位的雙字母國家/地區代碼是什麼?
[Unknown]: 86
CN=Jory, OU=department, O=organization, L=ChungKing, ST=ChungKing, C=86是否正確?
[否]: y

輸入 <test> 的密鑰口令
(如果和密鑰庫口令相同, 按回車):

如果沒有錯誤則回去查看D盤根目錄下,多了android.keystore,這便是簽名證書

將android.keystore拷貝到RN項目的android/app目錄中

2.設置gradle變量

編輯~/.gradle/gradle.properties../android/gradle.properties(一個是全局gradle.properties,一個是項目中的gradle.properties,大家可以根據需要進行修改) ,加入如下代碼:

MYAPP_RELEASE_STORE_FILE=your keystore filename 
MYAPP_RELEASE_KEY_ALIAS=your keystore alias 
MYAPP_RELEASE_STORE_PASSWORD=*****、
MYAPP_RELEASE_KEY_PASSWORD=*****


這裏的應填爲:

MYAPP_RELEASE_STORE_FILE=android.keyhstore
MYAPP_RELEASE_KEY_ALIAS=android.keystore
MYAPP_RELEASE_STORE_PASSWORD=123456
MYAPP_RELEASE_KEY_PASSWORD=123456

3.在gradle配置文件中添加簽名配置

編輯 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 
} 
} 
buildTypes 
{ 
release 
{ ...
 signingConfig signingConfigs.release 
} 
} } ...

4.簽名打包APK

DOS進入項目android目錄,若生成Debug版本,則運行

./gradlew assembleDebug

若生成Release版本,則運行

./gradlew assembleRelease
提示build Successful,打包便生成。

安裝包在android/app/build/outputs/apk/目錄下










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章