Проблема с сборкой версии Google и Huawei APK

Я настраиваю свой проект для сборки ароматов (Google и Huawei) в соответствии с этим документом - https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/agc-config-flavor.

Вот мои сценарии сборки. Я попытался включить подпись в сборку релиза без изменений.

приложение build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28

    defaultConfig {
        applicationId "com.myapp.testapp"
    }

    flavorDimensions "platform"
    productFlavors {
        huawei {
            versionCode 1712
            versionName "1.7.12"
            targetSdkVersion 29
            minSdkVersion 26
            buildTypes {
                resValue("string", "ad_app_id", "103959507")
                release {
                    resValue("string", "ad_id", "g87ta7hatb")
                    minifyEnabled true
                    proguardFiles 'proguard.cfg'
                    debuggable = true
                }
                debug {
                    resValue("string", "ad_id", "testf9tx29xur5")
                    debuggable = true
                }
            }
        }
    }
    lintOptions {
        checkReleaseBuilds false
        // Or, if you prefer, you can continue to check for errors in release builds,
        // but continue the build even when errors are found:
        abortOnError false
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    buildToolsVersion '29.0.2'
}

dependencies {
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation 'androidx.arch.core:core-runtime:2.1.0'
    implementation 'androidx.arch.core:core-common:2.1.0'

    huaweiImplementation 'com.huawei.hms:ads-lite:13.4.32.300'
    huaweiImplementation 'com.huawei.agconnect:agconnect-apms:1.3.1.300'
    huaweiImplementation 'com.huawei.agconnect:agconnect-core:1.4.1.300'
    huaweiImplementation 'com.huawei.agconnect:agconnect-crash:1.4.1.300'
    huaweiImplementation 'com.huawei.hms:iap:5.0.1.300'
}

apply plugin: 'com.huawei.agconnect'

проект build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        google()
        jcenter()
        maven {
            url 'https://developer.huawei.com/repo/'
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1'
        classpath 'com.huawei.agconnect:agcp:1.3.0.300'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
        maven {
            url 'https://developer.huawei.com/repo/'
        }
    }
}

Окружающая среда терпит неудачу 60054: url is null. Сборка gradle также выбирает расположение файла:--W- The variant: huaweiRelease, Use the json file: /Users/xxx/Documents/myappGoogle/app/src/release/agconnect-services.json

Я попробовал теги ароматов и попытался поместить файл json в каталог ароматов, как указано в сообщении здесь - https://forums.developer.huawei.com/forumPortal/en/topicview?tid=0201313999391430187&fid=0101187876626530001. Пока что файл был подхвачен при размещении в каталоге приложения, в каталогах src/debug(release), а также в каталогах src / flame. Я ясно вижу в журналах сборки, что скрипт сборки находит правильный файл.

Что также странно для меня, так это документация:https://developer.huawei.com/consumer/en/doc/development/HMS-References/iap-ExceptionHandlingAndGeneralErrorCodes-v4 говорит, что 60054 is iap is not supported in this country, но фактический код возвращается 60054: url is null.

Возвращаемый код ошибки, iapApiException.getStatus()возвращается status.statusCode = 60054и status.getStatusMessage = "url is null". Это от isEnvReady что противоречит вышеупомянутой документации, в которой код статуса 60054 должен быть OrderStatusCode.ORDER_ACCOUNT_AREA_NOT_SUPPORTEDгде, как если бы это была ошибка URL-адреса, я ожидал бы ошибки 60001OrderStatusCode.ORDER_STATE_PARAM_ERRORИли что-то вдоль этих линий.

Я думаю о возможности проблемы слияния из-за этого документа:https://developer.huawei.com/consumer/en/doc/development/HMS-Guides/Environment_installation Причина моих подозрений в том, что в моем AndroidManifest явно отсутствует appid, который должен быть включен через скрипты.

Я что-то упустил? Что вы предлагаете или что еще мне следует изучить? Благодарю.

2 ответа

Это не проблема с версией сборки, а проблема с использованием USA HUAWEI ID при тестировании. Правильное решение - разработчик должен создать другой идентификатор HUAWEI, не относящийся к США, а затем войти в телефон. После открытия приложения App Gallery измените настройки страны на страну, которая поддерживает IAP(например, Великобритания). Удалите SIM-карту США, а затем воспользуйтесь услугой IAP после подключения к измененной стране в Настройках с помощью VPN.

1 check Проверьте, скопировали ли вы файл agconnect-services.json в папку каждого типа сборки. 2 check Проверьте, есть ли у вас изменения в файлах конфигурации для адаптации к различным вариантам.

Подробности смотрите в документации.

Код результата 60054 может быть возвращен, если HUAWEI IAP поддерживается страной или регионом, но есть ошибка службы. В этом случае:

  1. Пожалуйста, предоставьте свой appid, чтобы проверить информацию.
  2. Предоставьте полный журнал: adb logcat >xxx.log чтобы получить это.
Другие вопросы по тегам