在 HarmonyOS 中,如果你遇到获取 Token 报错 1000900010 Illegal application identity,这通常表示应用的身份验证失败。这个错误码意味着你在向服务端请求 Token 时提供的应用身份信息不合法或无效。


可能原因及解决方案

签名问题:确保你的应用已经正确签名。在开发和发布过程中,HarmonyOS 应用需要使用合法的签名证书。


检查签名文件是否正确配置。

确保你在开发环境中使用了正确的调试签名文件,在发布环境中使用了正式签名文件。

配置问题:检查你的项目配置文件(如 config.json 或 profile 文件),确保应用 ID、包名等信息与注册的开发者账户一致。


账号权限问题:确保你使用的华为开发者账号有足够的权限来请求 Token。


确保你的开发者账号已通过认证,并且相关应用信息已经在华为开发者平台上进行了正确配置。

网络问题:确认你的设备能够正常访问外网,确保网络连接没有被防火墙或其他安全软件阻拦。


SDK 配置问题:确保您正在使用最新版本的 SDK,并且 SDK 配置正确。


示例:检查和修复配置文件

检查 config.json


{
    "app": {
        "package": "com.example.myapp",
        "name": "MyApp",
        "version": {
            "code": 1,
            "name": "1.0"
        }
    },
    "deviceConfig": {
        "default": {
            "features": [
                {"name": "ace"}
            ]
        }
    },
    "reqPermissions": [
        {
            "name": "ohos.permission.INTERNET"
        }
    ]
}

确保 package 字段与华为开发者平台上的应用信息一致。


签名文件配置

在 HarmonyOS 工程中,确保 signingConfigs 正确配置:


android {
    ...
    signingConfigs {
        debug {
            keyAlias 'debugKey'
            keyPassword 'password'
            storeFile file('debug.keystore')
            storePassword 'password'
        }
        release {
            keyAlias 'releaseKey'
            keyPassword 'password'
            storeFile file('release.keystore')
            storePassword 'password'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            signingConfig signingConfigs.release
        }
    }
}

请求 Token 示例代码

确保你按照 API 文档正确实现了 Token 请求逻辑。例如,使用 HTTP 请求获取 Token:


import fetch from '@system.fetch';

function getToken() {
    fetch({
        url: 'https://api.example.com/get_token',
        method: 'POST',
        data: {
            app_id: 'YOUR_APP_ID',
            app_secret: 'YOUR_APP_SECRET'
        },
        success: function(response) {
            console.log('Token:', response.data.token);
        },
        fail: function(error) {
            console.error('Failed to get token:', error.data);
        }
    });
}

在实际应用中,你需要替换 YOUR_APP_ID 和 YOUR_APP_SECRET 为实际的应用 ID 和密钥,并确保服务器端正确配置以接受这些信息。


总结


报错 1000900010 Illegal application identity 通常与应用签名、配置文件、开发者账号权限等因素有关。

通过检查并确保应用签名和配置文件正确,使用合法的开发者账号,并验证网络连接,可以有效解决这一问题。