下面的步骤,不要跳步,一步步看,肯定是可以成功的。
原文链接:
严禁搬运抄袭
一、本次用到的工具
- 代码开发工具:HBuilder X
- apk打包工具:Android Studio
- apk打包SDK:Android 离线SDK (下载地址:Android 离线SDK - 正式版)
- 生成签名证书的工具:本地请装 jdk1.8 ,在线网站:香蕉云编 ,二选一即可
- 生成appkey的网站:DCLOUD的开发者中心 (网址:开发者中心)
二、生成本地打包App资源
项目代码在自己手机上测试运行成功后,我们需要把uni-app的项目导出。点击 HBuilder X上方的 发行-->原生App-本地打包-->生成本地打包App资源 即可。如果是第一次点击,可能会提示你装什么东西,按提示的来,同意安装就可以了。
导出成功后,HBuilder X 下方的控制台会告诉你导出路径。至此,HBuilder X 的任务完成。
三、打开 HBuilder-Integrate-AS 项目
项目在Android 离线SDK - 正式版下载,这个sdk可能不止用来打包apk,但目前我们只是用来打包apk。
四、拷贝资源
- 删除 HBuilder-Integrate-AS\simpleDemo\src\main\assets 中的apps下的文件。
- 拷贝步骤二生成的本地打包资源到该目录下。
五、修改项目 APPID
修改 HBuilder-Integrate-AS 项目下 dcloud_control.xml 文件 中的 appid 与其 manidest.json 文件中的一致。
appid记不住没关系,还记得第四步中让你移动的那个文件夹吗,它的文件名就是appid。
六、生成Android证书签名
这里测试演示我采用香蕉云编,自己使用请使用本地jdk生成Android证书签名,保证安全性。
本地生成Android证书签名教程链接:Android平台签名证书(.keystore)生成指南 - DCloud问答
按要求填写即可。
生成的证书下载到本地,记住path路径和包名、SHA1、SHA256值,后面需要用到。
七、生成appkey
前往 DCLOUD 的开发者中心(网址:开发者中心)
在开发者中心我的应用中看到这条应用,点击应用名称会跳转到该条应用的管理页面。
点击应用名称进入应用管理页面,点击各平台信息,然后点击新增。
选择平台: 我们选择Android,因为我们这次是打包apk。
Android包名:包名不能随便写,否则安装apk打开后会报错! 它的值在离线SDK的 \HBuilder-Integrate-AS\simpleDemo\src\main\AndroidManifest.xml 中,没改过的话应该跟我一样,是 com.android.simple。
Android证书签名SHA1、SHA256值:第六步中生成的SHA1、SHA256安全码。
填写完后点击提交就可以了生成appkey了。
八、在 AndroidManifest.xml 中配置 appKey
回到 Android Studio,在 AndroidManifest.xml 中配置appKey。
九、打包apk
现在万事俱备,只剩打包了,点击 Android Studio 上方的 Build-->Generate Signed Bundle / APK...
弹出打包窗口,选择 APK,然后点击 Next
点击 Choose existing...,选择第六步让你记下的证书存放路径,Key store path 就会自动填充,Key store password、Key alias、key password,这三项也在第六步中设置。如果两个password记不住了,那就按第六步的教程重新生成一个证书吧。Remember passwords 根据自己需要吧(小白还是勾吧,记住密码)。全部填完后点击下方 Next。
最后就是选择导出路径,然后选择 release,然后点击下方 Finish。
这里选择路径需要文件读写权限,不能选择只读的文件路径。
导出成功后,Android Studio 的 Build 控制台会提示 BUILD SUCCESSFUL。
然后就可以在导出路径的release文件夹里找到打包好的apk文件了。
我们可以把apk拖入模拟器中进行安装测试。
如果正常打开无报错,那基本就大功告成了。
附:
如果出现了 “Appkey is not configured or configured incorrectly” 错误。
这种情况不用怀疑。还是安装包的信息与你在申请Appkey填写信息不符导致的。 appid+应用包名+签名sha1三者必须与申请填写的信息一致才可以的。
android平台 可以按一下步骤检查一下离线项目配置:
- 查看签名文件是否配置到了主APP的build.gradle。
- 查看离线项目中dcloud_control.xml文件中的appid是否与申请AppKey时的appid一致。
- 检测离线项目的包名是否申请AppKey时的包名是否一致。
- 对比安装包apk文件的SHA1是否与应用后台配置的SHA1一致。
- 检查dcloud_appkey配置位置是否正确,dcloud_appkey一定要放到Androidmanifest.xml文件的application节点里。
原文链接: