使用Hbuilder创建的uniapp项目的打包步骤:
打开manifest.json文件,重新获取APPID标识
点击发行=》原生APP云打包
会弹出一个APP打包的页面设置,以下以安卓打包为例:
一、使用公共测试证书:
![](https://i-blog.csdnimg.cn/blog_migrate/6ed8a76f51754193651c7056fe9be7ca.png)
填入包名、选择正式使用公共测试证书、选择打包正式、选择原生混肴、选择安心打包;最后【打包】;
会弹出【继续打包】;控制台显示:打包成功;安装包位置unpachage/release/apk/******.apk;生成APK文件
apk文件就是打包成功后 文件;把文件发布到各平台,供用户下载;或者直接发给用户,下载安装。
二、自有证书打包
如果项目内使用了自有证书的话,打包的时候需要选择【使用自有证书】。例如:使用高德地图
uni.getLocation()获取到的坐标和高德地图实际坐标有差距?
为什么在地图显示的位置有偏差?
地球上同一个地理位置的经纬度,在不同的坐标系中,会有少许偏移,国内目前常见的坐标系主要分为三种:
地球坐标系——WGS84:常见于 GPS 设备,Google 地图等国际标准的坐标体系。
火星坐标系——GCJ-02:中国国内使用的被强制加密后的坐标体系,高德坐标就属于该种坐标体系。
百度坐标系——BD-09:百度地图所使用的坐标体系,是在火星坐标系的基础上又进行了一次加密处理。
使用自有证书打包,才可支持 gcj02。
使用自有证书打包,必须有证书文件和证书私钥密码
这两个的获取实在 JRE环境下:
高德地图生成key值的密钥获取方法:
HBuilder=》发行=》原生APP-云打包的具体步骤:
1、生成keystore文件
这个文件就是APP打包时,使用自有证书,使用的证书文件,是以【.keystore】为结尾的文件,名字随意取
参考:https://ask.dcloud.net.cn/article/35777
操作:在JRE环境:
进入jre文件夹下,cmd命令输入:
keytool -genkey -alias com.sunnyintec.netms -keyalg RSA -keysize 2048 -validity 36500 -keystore F:\test.keystore
com.sunnyintec.netms :是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
test.keystore:要生成的证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径
36500:是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期
回车后会提示:输入密码,这个密码要记住,就是证书私钥密码(这时候密码是新设置的,随便输入,需要记住)
输入证书文件密码,也就是输入密钥库口令,证书私钥密码 ,是自己设置的,需要记住。HBuilder打包的时候,需要输入的证书私钥密码
下面的数据都是按规范填的(随便填),需要注意的是国家代号输入【CN】。回车
以上命令运行完成后就会生成证书,路径为“ F:\test.keystore”。
2、获取 SHA1 值
这个值是高德地图获取【key】值使用的。
参考:https://lbs.amap.com/faq/android/map-sdk/create-project/43112
下面介绍的是使用 keytool(jdk自带工具)获取SHA1
操作:在JRE环境:
在桌面进入cmd控制台
在弹出的控制台窗口中输入 cd .android 定位到 .android 文件夹
继续在控制台输入命令:
调试版本使用 debug.keystore,命令为:keytool -list -v -keystore debug.keystore
发布版本使用 apk 对应的 keystore,命令为:keytool -list -v -keystore apk的keystore
keytool -list -v -keystore F:\test1.keystore 其中【F:\test1.keystore】:是1生成的证书文件名
提示输入密钥库密码,调试版本默认密码是 android,发布版本的密码是为 apk 的 keystore 设置的密码。
这个密码就是生成证书文件输入的证书私钥密码
回车后就可以查看证书生成的密码及证书信息:
SHA1:这个值就是高德地图生成key值的密钥
别名:别名是HBuilder打包的时候使用的证书别名
3、高德地图生成key值
登录高德的控制台后,在我的应用添加【key】
key名称:根据规范填写
服务平台:选择对应的平台
发布版安全码SHA1:就是2中获取到的SHA1值
PackageName:就是HBuilder打包时的包名,这里需要保持一直,可以修改,修改后打包的包名也要改变
以上信息提交后,会生成一条key名称命名的key数据,后面对应的【key】就是项目中使用高德地图的key值。
4、key的使用
在manifest.json文件里,可以直接改变源码试图里面的APP相关【sdkConfigs】配置的【maps】里面的【appkey_android】的值。
![](https://i-blog.csdnimg.cn/blog_migrate/e8a1831c1c66b413528263125f6b76ba.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ddf9c31db5e4e271320ffc6c7d1c1143.png)
里面的 android 和 ios 是分别填写的,在高德生成的时候生成两条 key,这里是不一样的。
5、打包
最后在打包项目的时候,选择【自有证书】
![](https://i-blog.csdnimg.cn/blog_migrate/af8976e5ae5f6b89dd040128d53a5e6a.png)
最后会生成一个以【.adk】结尾的文件
![](https://i-blog.csdnimg.cn/blog_migrate/1b9ebda7f91a34abfbf807a623bc0eec.png)
复制这个文件,发送给手机,手机端直接点击下载就是最后的项目。