HarmonyOS鸿蒙Next中调试debug下华为获取匿名手机号成功,但是发行到应用市场的release版本返回错误
HarmonyOS鸿蒙Next中调试debug下华为获取匿名手机号成功,但是发行到应用市场的release版本返回错误
// 创建授权请求,并设置参数
const authRequest = new authentication.HuaweiIDProvider().createAuthorizationWithHuaweiIDRequest();
// 获取匿名手机号需传quickLoginAnonymousPhone这个scope,传参之前需要先申请“华为账号一键登录”权限
authRequest.scopes = [‘quickLoginAnonymousPhone’];
// 用于防跨站点请求伪造
authRequest.state = util.generateRandomUUID();
// 一键登录场景该参数只能设置为false
authRequest.forceAuthorization = false;
const controller = new authentication.AuthenticationController();
try {
controller.executeRequest(authRequest).then((response: authentication.AuthorizationWithHuaweiIDResponse) => {
// 获取到UnionID、OpenID、匿名手机号
GlobalDialogUtils.hideLoading(GlobalDialogType.LoadingDialog);
const unionID = response.data?.unionID;
const openID = response.data?.openID;
const anonymousPhone = response.data?.extraInfo?.quickLoginAnonymousPhone as string;
if (anonymousPhone) {
hilog.info(0x0000, ‘testTag’, ‘Succeeded in authentication.’);
this.quickLoginAnonymousPhone = anonymousPhone;
console.info(unionID: ${unionID} openID: ${openID} anonymousPhone: ${anonymousPhone});
this.showLoginType = LOGIN_TYPE.LOGIN_HUAWEI;
return;
}
hilog.info(0x0000, ‘testTag’, ‘Succeeded in authentication. AnonymousPhone is empty.’);
// 未获取到匿名手机号需要跳转到应用自定义的登录页面
}).catch(async (error: BusinessError) => {
await GlobalDialogUtils.hideLoading(GlobalDialogType.LoadingDialog);
this.dealAllError(error);
})
} catch (error) {
this.dealAllError(error);
}
release版本返回错误码:1001500001 - Failed to check the fingerprint of the app bundle. 这种是什么原因导致的?
更多关于HarmonyOS鸿蒙Next中调试debug下华为获取匿名手机号成功,但是发行到应用市场的release版本返回错误的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,调试模式下获取匿名手机号成功,但在发布到应用市场的release版本返回错误,可能是由于以下原因:
-
签名差异:调试模式和release版本的签名不同,可能导致某些API权限或认证失败。确保release版本的签名与调试模式一致,并在华为开发者联盟中正确配置。
-
API权限配置:release版本可能需要额外的权限或配置。检查
config.json文件中是否正确配置了匿名手机号相关的权限,如ohos.permission.READ_PHONE_STATE。 -
混淆配置:release版本可能启用了代码混淆,导致某些API调用失败。检查
build.gradle或proguard-rules.pro文件,确保相关API不被混淆。 -
环境差异:调试模式和release版本运行的环境不同,可能导致某些功能异常。确保release版本在真机上的运行环境与调试模式一致。
-
API调用限制:某些API在release版本中可能有调用限制或需要额外的认证。检查华为开发者联盟中相关API的使用说明,确保release版本符合要求。
-
日志缺失:release版本可能缺少调试日志,导致问题难以定位。在release版本中增加必要的日志输出,便于排查问题。
-
版本兼容性:确保使用的SDK版本与鸿蒙Next系统版本兼容。某些API可能在特定系统版本中存在兼容性问题。
-
网络配置:release版本可能由于网络配置问题导致API调用失败。检查网络配置,确保release版本能够正常访问相关服务。
-
证书配置:确保release版本的证书配置正确,且在华为开发者联盟中进行了正确的关联。
-
API调用频率:某些API在release版本中可能有调用频率限制。检查API调用频率,确保不超过限制。
通过以上步骤,可以排查并解决release版本中获取匿名手机号返回错误的问题。
在HarmonyOS鸿蒙Next中,调试(debug)模式下成功获取匿名手机号,但在发布到应用市场的Release版本中返回错误,可能的原因包括:
-
签名问题:Release版本使用了不同的签名证书,导致华为服务无法正确验证应用身份。请确保调试和发布版本使用相同的签名证书。
-
权限配置:Release版本可能缺少必要的权限或配置。检查
config.json文件,确保所有权限和服务配置正确。 -
ProGuard/R8优化:代码混淆可能导致某些类或方法被移除或重命名。在
proguard-rules.pro中添加相关规则,保留必要的类和方法。 -
API Key/Secret:确保在Release版本中正确配置了华为服务的API Key和Secret。
-
日志级别:Release版本可能禁用了详细日志,增加日志输出以帮助定位问题。
-
网络环境:确保Release版本在真实网络环境下能够正常访问华为服务。
建议检查上述问题,并进行相应调整。


