在我們的React Native For Android應(yīng)用開(kāi)發(fā)完成之后猾昆,那么就需要進(jìn)行發(fā)布上傳應(yīng)用市場(chǎng)了彪腔,在上傳之后巷蚪,那么有一個(gè)很重要的步驟就是簽名打包居灯。下面我們來(lái)詳細(xì)看一下怎么樣進(jìn)行簽名打包React Native應(yīng)用穗熬。
<p>
(一)Android簽名文件生成
上面有一個(gè)Android官方的簽名生成方法的地址镀迂,大家可以進(jìn)行詳情查看,不過(guò)需要翻墻哦~唤蔗。我現(xiàn)在給大家講解兩種簽名生成的方法:
①:keytool命令方式生成 探遵,②:Android Studio IDE進(jìn)行生成。
1.1 keytool命令生成簽名秘鑰
我們可以命令行運(yùn)行如下命令:
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
[注意].我這邊環(huán)境變量已經(jīng)配置了妓柜,注意上面的my-release-key這個(gè)名字可以自己取名别凤,同時(shí)my-key-alias也是自己取名,其中第二個(gè)名稱(chēng)alias參數(shù)后邊的別名领虹,在后面你在為應(yīng)用簽名的時(shí)候需要用到规哪,所以暫時(shí)記錄一下這個(gè)別名。
上面的命令我們需要輸入密鑰庫(kù)(keystore)密碼和對(duì)應(yīng)秘鑰的密碼塌衰,然后設(shè)置名字诉稍,組織,國(guó)家最疆,省份相關(guān)的信息杯巨,最后會(huì)生成my-release-key.keystore的簽名文件。
具體命令截圖如下:
現(xiàn)在我們?nèi)ビ脩?hù)默認(rèn)目錄下面會(huì)生成my-release-key.keystore文件努酸。具體截圖如下
1.2 Android Studio IDE進(jìn)行生成秘鑰文件
個(gè)人比較傾向于這一種方法服爷,首先是圖形界面的,而且少了命令行書(shū)寫(xiě)的問(wèn)題,而且以前我記得在使用Eclipse開(kāi)發(fā)Android的時(shí)候也一直使用這種方式仍源,下面我們來(lái)看一下生成簽名的具體步驟:
首先打開(kāi)Android Studio菜單選擇build->Generate Signed APK 在打開(kāi)的界面點(diǎn)擊Next心褐,會(huì)彈出下面的界面
最后點(diǎn)擊finish會(huì)生成簽名秘鑰,不過(guò)大家請(qǐng)注意看這邊生成的秘鑰和第一個(gè)命令行方法的秘鑰的后綴不太一樣的,這邊是以jks結(jié)尾的笼踩,不過(guò)也沒(méi)問(wèn)題哦~也是同樣可以簽名的逗爹。
![Upload Paste_Image.png failed. Please try again.]
以上兩種方式已經(jīng)給大家演示了,打包簽名的方法了嚎于,下面我們正式來(lái)進(jìn)行配置打包生成APK了掘而。
(二)Gradle配置
2.1.Gradle配置
①.首先我們要把剛剛生成的簽名文件復(fù)制到項(xiàng)目android/app文件夾下面( 這邊采用AS生成簽名test.jks )。
然后進(jìn)行修改項(xiàng)目中g(shù)radle.properties文件于购,進(jìn)行添加如下的代碼(注意下面的簽名和別名的名稱(chēng)和上一步放入的test.jks要一樣袍睡,下面兩項(xiàng)分別填寫(xiě)簽名和別名的密碼)-我取的密碼為123456
MYAPP_RELEASE_STORE_FILE = test. jks
MYAPP_RELEASE_KEY_ALIAS = test_alias
MYAPP_RELEASE_STORE_PASSWORD = 123456
MYAPP_RELEASE_KEY_PASSWORD = 123456
這一步我們是進(jìn)行全局的gradlde進(jìn)行變量化的配置,后邊我們會(huì)在后邊的步驟中給相應(yīng)的應(yīng)用進(jìn)行簽名肋僧。
[注意].以上的簽名秘鑰請(qǐng)大家一定要妥善保管斑胜,因?yàn)樵趹?yīng)用發(fā)布的時(shí)候需要的。
3.2.給應(yīng)用添加簽名-配置局部應(yīng)用Gradle文件直接在工程目錄下得android/app/build.gradle中以下節(jié)點(diǎn)添加如下內(nèi)容:
...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
}
}
}
…
具體實(shí)例配置截圖如下:
(三)Gradle配置
生成簽名包
對(duì)于生成簽名包得方式我們要分兩種情況進(jìn)行區(qū)分對(duì)待色瘩。第一種在項(xiàng)目目錄android/app下有react.gradle文件的(這個(gè)采用react-native init xxproject命令生成項(xiàng)目詳情請(qǐng)看:
第二種是不存在react.gradle文件,主要是通過(guò)原生Android項(xiàng)目移植到React Native平臺(tái)中逸寓。下面這兩種方法都講一下:4.1.對(duì)存在react.gradle文件的項(xiàng)目打包命令行切到react native主目錄居兆,然后運(yùn)行下面的命令,請(qǐng)注意下面 android就是Android項(xiàng)目的目錄名稱(chēng)
cd android && . /gradlew assembleRelease
這樣運(yùn)行截圖如下:
該命令運(yùn)行結(jié)束之后竹伸,會(huì)在android/app/build/outputs/apk目錄下面生成app-release.apk該文件泥栖,然后可以使用該apk進(jìn)行上線(xiàn)發(fā)布。