我接觸react-native 比 接觸reactjs更早一點,個人感覺這樣的方式更容易積累一些東西吧。其實可以作為元件去開發,平時寫一些公共的元件收集起來,用的時候方便快捷。
這篇文章主要是我個人打包android成功的經歷。由於環境問題可能和其他童鞋的情況不一樣。
好言歸正傳。
-
react-native bundle 執行
react-native bundle
--platform android //平臺型別
--dev false //是否是開發
--entry-file index.android.js //輸入
--bundle-output android/bundle/index.android.bundle //輸出
--assets-dest android/assets //資原始檔
執行成功之後需要把 index.android.bundle 放在 app/src/main/assets 目錄下
如沒有該目錄就建立。
-
生成keystore
在這裡要說一下,有的手機不簽名的話可以安裝,有的收集則不行,所以這塊我把簽名步驟也加上,希望對大家有用 用的 keytool 命令
keytool -genkey -v -keystore [b]project_name.keystore[/b] -alias [b]project_name[/b] -keyalg RSA -keysize 2048 -validity 10000
這段命令會有幾步需要輸入的地方,需要先記錄一下,後面會用到。
-
設定 android/gradle.properties 變數
找到android目錄下的gradle.properties 檔案新增以下程式碼 對應的是 上面命令種的資訊和資料的密碼資訊
MYAPPRELEASESTOREFILE=project_name.keystore
MYAPPRELEASEKEYALIAS=project_name
MYAPPRELEASESTOREPASSWORD=*****
MYAPPRELEASEKEYPASSWORD=*****
-
編輯 android/app/build.gradle
完成上面的步驟之後,緊接著編輯android/app/build.gradle檔案
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.reactnative"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
[b]signingConfigs{
release {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}[/b]
buildTypes {
release {
minifyEnabled false // Set this to true to enable Proguard
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
[b]signingConfig signingConfigs.release[/b]
}
}
}
上面的加粗部分是需要增加或者修改的地方
-
最後 ./gradlew assembleRelease
可能需要 先執行 adb reverse tcp:8081 tcp:8081 不然的話安裝失敗
打包後 在android/app/build/outputs/apk 目錄中 app-release.apk