Android
生成簽名祕鑰
-
由於安卓應用都需要數字簽名才能安裝,所以首先我們要使用jdk生成一個數字簽名。
-
首先打開cmd命令行工具,進入jdk安裝路徑的bin目錄下,一般是C盤的programe files
-
接着在這個路徑下執行命令:
keytool -genkey -v -keystore test.keystore -alias test -keyalg RSA -keysize 2048 -validity 10000
是否確認, 是 繼續回車
Copy提示, 轉爲pkcs12
其中,test.keystore是生成的祕鑰文件的名字,test是映射名,待會需要在程序中配置。
之後會提示輸入祕鑰口令和一些相關信息,按照提示輸入即可。
這些全部操作完成之後,就可以在剛剛進入的C:\Program Files\Java\jdk1.8.0_101\bin目錄下找到生成的test.keystore祕鑰文件。
-
本地也要加
C:\Users\Administrator\.gradle 也要添加gradle.properties文件
MYAPP_RELEASE_STORE_FILE=test.keystore
MYAPP_RELEASE_KEY_ALIAS=test
MYAPP_RELEASE_STORE_PASSWORD=you password
MYAPP_RELEASE_KEY_PASSWORD=you password
在項目中配置祕鑰文件
-
這個祕鑰的配置是專門用於打包安卓程序的,所以全部配置在項目的android目錄下。
-
首先找到項目根目錄下的android目錄,這裏麪包含一個完成的安卓項目,也包括打包工具gradle。將剛剛生成的test.keystore 文件放在/android/app目錄下
-
在android目錄下有一個gradle.properties文件,在裏面配置好祕鑰相關信息,如下
MYAPP_RELEASE_STORE_FILE= 你的祕鑰文件名
MYAPP_RELEASE_KEY_ALIAS=你的祕鑰映射名
MYAPP_RELEASE_STORE_PASSWORD=你設置的祕鑰密碼
MYAPP_RELEASE_KEY_PASSWORD=你設置的密碼
- 接着將下面這段配置放在android/app/build.gradle文件中
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 // 添加這一句
}
}
生成bundle
7. 在 工程目錄裏面新增 bundles文件:mkdir bundles
8. 運行命令打包 react-native bundle --platform 平臺 --entry-file 啓動文件 --bundle-output 打包js輸出文件 --assets-dest 資源輸出目錄 --dev 是否調試。
android:
react-native bundle --platform android --entry-file index.js --bundle-output ./bundles/index.android.bundle --assets-dest ./bundles --dev false
打包出來的資源放入根目錄android/app/src/main/assets/裏面
注意事項
- 忽略了資源輸出是因爲 輸出資源文件後,會把bundle文件覆蓋了。
- 輸出的bundle文件名不叫其他,而是 index.android.bundle,是因爲 在debug模式下,工程讀取的bundle就是叫做 index.android.bundle。
打包APK
cmd進入項目下的android目錄,運行如下代碼:
./gradlew assembleRelease
Mac
- 在根目錄創建bundles文件夾
- 打包靜態資源
react-native bundle --platform ios --entry-file index.js --bundle-output ./bundles/main.jsbundle --assets-dest ./bundles --dev false
- 將打包出來的js和assets導入到ios目錄下