安卓项目发布到真机上测试需要打包成apk。就介绍下打包流程:
1. 产生签名的key
该过程会用到keytool,开发过安卓的都应该接触过该东西。详细请见密钥和证书管理工具。
在工程的主目录中执行:
keytool -genkey -v -keystore my-release-key.keystore -aliasmy-key-alias-keyalg RSA -keysize2048-validity10000
[注:在产生的时候需要提供密钥和存储密码,后续会用到]
把生成的 my-release-key.keystore 拷贝到工程目录 /android/app/目录下
图片.png
2.新建assets文件夹
找到工程目录下/android/app/src/main,并在该目录下新建assets文件夹
图片.png
3. 在工程目录下执行以下命令
目的是将 index.android.bundle下载并保存到assets资源文件夹中
curl -k "http://localhost:8081/index.android.bundle" > android/app/src/main/assets/index.android.bundle
提示curl命令不是内部...? 答案在: http://www.cnblogs.com/xing901022/p/4652624.html
执行完后在步骤2新建的目录下android/app/src/main/assets/多了一个index.android.bundle文件
4. 修改android/gradle.properties文件,增加如下
MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=xx
MYAPP_RELEASE_KEY_PASSWORD=xx
[注意替换xx为你自己设置的密钥和存储密码]
5.修改android/app/build.gradle文件中的签名配置:
...
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
}
}
}
6.然后进入android目录执行如下:
gradlew assembleRelease
结束后会在android/app/build/outputs/apk/app-release.apk。
每次执行前,注意将该apk删除。
遇到的问题
第一次执行打包操作时出现下面问题,什么拒绝访问
图片.png我也不清楚这个问题的来由,我进入\android\app\build\intermediates\assets\目录下没有看到release目录,所以我新建一个release目录,并把相关资源拷贝进去,再次打包成功
网友评论