React Native打包

2018-02-06 10:45:35 浏览数 (1)

前面写了关于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

0 人点赞