集成LinkedIn Login遇UNKNOWN_ERROR,移动标识符无效问题求助
解决LinkedIn登录认证错误:"The passed in mobile identifier is invalid"
这个错误的核心原因很明确:LinkedIn的OAuth认证系统找不到与你当前应用包名匹配的注册信息,错误里提到的com.tablefortwo就是它无法识别的包名。咱们一步步来排查解决:
1. 核对LinkedIn开发者后台的应用配置
首先登录LinkedIn开发者平台,找到你创建的应用,进入Auth标签页的Mobile板块:
- 确认Package Name字段填写的内容和你当前应用的实际包名完全一致(包名是区分大小写的,多一个空格或者大小写不对都会报错)
- 同时检查Hash字段里的SHA-1指纹是否正确——这也是常见的坑,即使包名对了,签名指纹不匹配也会触发这个错误
2. 验证应用的实际包名
打开你的Android项目的AndroidManifest.xml文件,查看根标签manifest的package属性值,确保它和LinkedIn后台填写的包名完全一致。
如果你的项目用了多渠道打包或者product flavors,要注意每个构建变体的包名都需要在LinkedIn后台注册,或者统一使用一个主包名进行配置。
3. 生成并配置正确的签名指纹
LinkedIn要求应用的签名指纹和后台配置完全匹配,不管是debug还是release构建:
- 生成debug签名的SHA-1,可以用这条命令:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android - 生成release签名的SHA-1,就用你自己的签名文件替换上面的
debug.keystore,并填写对应的密码和别名 - 把生成的SHA-1字符串(去掉空格)准确粘贴到LinkedIn后台的Hash字段里
4. 清理缓存并重新构建
有时候旧的构建缓存会导致配置不生效,建议:
- 在Android Studio里点击
File -> Invalidate Caches... -> Invalidate and Restart清除缓存 - 卸载设备上的旧应用,重新安装新构建的版本
- 重启你的测试设备,避免系统缓存的旧认证信息干扰
额外提示
你提供的buildScope()和signInWithLinkedIn()代码逻辑是没问题的,权限配置也符合LinkedIn的要求,所以不用在这部分调整精力,重点放在包名和签名的匹配上就好。
内容的提问来源于stack exchange,提问作者Kartika Vij
相关产品推荐
相关产品推荐

