1. 需求
使用hbuilder修改东北高师就业联盟网的app,完成了qq和微博第三方登录,真机调试正常。但是打包发布后,问题来了。使用qq登录时,会提示错误“该应用非官方正版应用,请去应用宝下载正版后进行qq登陆。(错误码:100044)”。使用微博登录时,会提示错误“21338:sso package or sign error”。
因为就业联盟网在开放平台上是一个web应用,但是我们的app打包后是一个android应用和一个ios应用。所以,要解决这个问题,我们要在开放平台上添加android应用和ios应用。
2. android打包签名
在配置开放平台之前,我们先把android app打包发布,具体流程如下:
2.1. 安装java环境
参考《全平台安装JDK》。
2.2. 生成keystore
keytool -genkey -alias dsjyw.keystore -keyalg RSA -validity 1000 -keystore dsjyw.keystore
说明:keytool -genkey -alias 别名.keystore -keyalg RSA -validity 有效期限(天数) -keystore 别名.keystore
2.3. dsjyw.store参数
1 | 输入密钥库口令: voidking |
2.4. 打包
1、打开Hbuilder,发行,发行为原生安装包。
2、使用自有证书;Android包名是自动生成的,不需要修改,也可以修改为自己喜欢的包名;证书别名和私钥密码是生成keystore时配置的;证书文件选择生成的keystore文件。
3、打包,之后会自动上传源码,打包好后下载到app存放目录中。
2.5. 签名
1、复制打包下载好的apk文件到dsjyw.keystore相同的目录,重命名apk文件为android-release-unsigned.apk。
2、打开cmd,执行签名命令jarsigner -verbose -keystore dsjyw.keystore -signedjar dsjyw.apk android-release-unsigned.apk dsjyw.keystore
说明:jarsigner -verbose -keystore 别名.keystore(密钥库位置) -signedjar 签名后产生的文件.apk
要签名的文件.apk 别名.keystore(密钥库)
2.6. 查看签名
keytool -v -list -keystore dsjyw.keystore
找到MD5: 70:1D:81:1E:D3:A6:8B:28:66:82:BA:D8:EB:79:DC:63
新浪创建移动应用时要求的是32位数字小写字母,把前面的这串数字中的冒号去掉,字母小写即可。
3. 腾讯开放平台
3.1. 创建安卓应用
1、登录腾讯开放平台
2、安卓应用,创建应用。
3、关联QQ互联,输入联盟网web应用的appid和appkey,确定。之所以关联QQ互联,是为了统一appid,否则,web登录和app登录获得的是不同的openid。
如果关联QQ互联后,创建应用失败,提示“对不起,您不是应用的创建者或协作者(1500401)”。
可能一:
不是协作者。请先使用联盟网web应用所在账号登录,在管理中心页面,滑动鼠标到右上角用户名,单击权限权限管理,添加协作者。
可能二:
账号冲突。之前的web应用在QQ互联上,此时,不要在浏览器中同时打开腾讯开放平台和QQ互联,也不要登录其他的QQ邮箱,有可能账号冲突。
可能三:
开发者资料未提交审核。
4、选择移动应用 安卓,创建应用,选择应用类型,确定。此时创建的安卓应用,它的appid和appkey就和联盟网web应用相同了。
5、按照提示,填写需要的字段即可。需要注意的是,上传安装包时,需要上传签名后的apk文件。
6、填写好信息,保存即可,不需要提交审核。如果需要提交审核的话,请先根据提示加固应用。
3.2. 创建ios应用
1、在安卓应用中,可以看到我们创建的联盟网app,单击它。
2、鼠标滑到右上角平台信息,单击IOS应用,即可创建IOS应用。该IOS应用的appid和appkey就和联盟网web应用相同,也和安卓应用相同。
警告,创建ios应用后,此时安卓应用和ios应用实际上是同一个应用。删除任意一个,两个应用就都没有了。
3、按照提示填写各字段即可。其中比较难的是URL scheme、AppStore ID和Bundle ID,这些信息可以到Apple Developer和itunes connect上查看到。
4. 新浪开放平台
1、登录新浪开放平台
2、微连接,移动应用,立即接入。勾选Iphone和Android两个平台,创建。
3、填写应用基本信息。其中比较难的是Android签名,不必使用新浪提供的签名工具,参考本文中的“查看签名”小节,填入得到的32位字符串。
4、保存信息,提交审核。审核不通过会有详细提示,参考提示修改后再次提交审核。
5、单击左侧导航栏应用信息,高级信息。OAuth2.0 授权设置中点击编辑,授权回调页和取消授权回调页都填入https://api.weibo.com/oauth2/default.html
。