除了官網上介紹的生成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/目錄下