前面写了关于React的一系列入门章:http://lib.csdn.net/xiangzhihong8/5375/chart/React Native
欢迎大家吐槽,今天要说的是在Android和iOS两个平台如何打包的问题。
Android平台打包
Android平台有两种发布方式:一种是借助于命令行操作,另外一种是借助于Android Studio进行发布。
Android Studio平台发布
借助于Android Studio生成签名keystore,然后生成签名包,这和传统的Native开发一样。
此时,你会发现,你可以继续生成一个apk,并且可以安装,但是却无法运行,发生闪退。这是因为React-Native的android平台下默认没有生成资源文件也就是我们所有的js图片文件等等。
下面我们就来生成JS Bundle文件:
1,创建一个assets文件
创建一个assets文件在工程目录下,可以通过命令行操作,也可手动,具体的命名是:
代码语言:javascript复制mkdir -p Android/app/src/main/assets
2,生成Bundle文件
生成Bundle文件的命令:
代码语言:javascript复制React-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
我们已经完全生成了bundle文件了,可以查看自己工程assets下的文件夹,如果生成,则再次签名运行就没有问题。
命令行发布版本
生成签名文件
代码语言:javascript复制keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
修改android/gradle.properties文件
编辑gradle文件,如果没有就创建一个。
代码语言:javascript复制MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=*****
MYAPP_RELEASE_KEY_PASSWORD=*****
修改签名gradle配置文件
代码语言:javascript复制...
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
}
}
}
...
生成签名APK包
代码语言:javascript复制./gradlew assembleRelease
完成之后便会在android/app/build/outputs/apk/app-release.apk生成可安装包。
IOS平台打包
相对于Android平台来讲,IOS平台的发布操作相对简单,只需要简单配置即可。
选择Product ⇒ Archive。
等待系统打包,打包出来的即使ipa文件
附:http://www.jianshu.com/p/32a99c273be1