Как загрузить файл Android Release APK в Huawei AppGallery с помощью Connect API? - PullRequest
1 голос
/ 13 июля 2020

У меня есть проект, созданный в Huawei AppGallery, и я хочу создать плагин Gradle, который загружает новую версию файла Release APK в проект, не отправляя его на утверждение, с помощью Huawei Connect API (просто загрузите новую версию , а не публиковать sh актуальное обновление для пользователей). Прямо сейчас в HuaweiAppGallery есть более старая версия android apk.

Это то, что у меня есть. С экземпляром huaweiService он просто вызывает конечные точки Connect API:

    // get access token
    val token = huaweiService.getToken(
        clientId = clientId,
        clientSecret = clientSecret
    )

    // get app id
    val appInfo = huaweiService.getAppID(
        clientId = clientId,
        token = token,
        packageName = variant.applicationId
    )
    
    val uploadUrl = huaweiService.getUploadApkUrl(
        clientId = clientId,
        token = token,
        appId = appInfo.value
    )

    // upload apk file
    val fileInfoListResult = huaweiService.uploadApkFile(
        uploadUrl = uploadUrl.uploadUrl,
        authCode = uploadUrl.authCode,
        apkFile = apkFile
    )

    // update app info
    val fileInfoRequestList = mapFileInfo(fileInfoListResult, apkFileName)
    val appId = appInfo.value
    huaweiService.updateAppFileInformation(
        clientId = clientId,
        token = token,
        appId = appId,
        fileInfoRequestList = fileInfoRequestList
    )

Проблемы, с которыми я столкнулся, следующие:

  1. Запрос на загрузку файла APK действительно выполнен, uploadApkFile возвращает URL-адрес загрузки внутри результата (я даже могу загрузить APK с этим URL-адресом), но этот файл APK не отображается в Huawei AppGallery, где все версии APK приложения отображаются, когда я загружаю их вручную. Поэтому я не могу отправить его на утверждение выпуска.

  2. updateAppFileInformation метод, выполняемый после загрузки APK, завершается с ошибкой:

    [cds]add apk failed, additional msg is [package name already exists]
    

Почему он сообщает мне, что имя пакета уже существует? Я знаю, что это так, уже загружена более старая версия моего приложения, которую я просто хочу обновить. Как правильно загрузить новую версию Release APK в AppGallery, чтобы после этого я мог взять ее и отправить для выпуска вручную?

1 Ответ

0 голосов
/ 13 июля 2020

Ваш вопрос:

Как мне правильно загрузить новую версию Release APK в AppGallery?

Первый , у вас есть уже скачанный APK с URL. Убедитесь, что обновление информации о файле приложения вызвано в течение 5 минут. Поскольку загруженный файл доступен только в течение 5 минут перед вызовом API обновления информации о файле приложения.

Второй , выполните следующие действия для загрузки новой версии:

  1. Шаг первый: Получение URL-адреса для загрузки файла : этот API используется для получения URL-адресов загрузки файлов, включая изображения, видео, APK, RPK и PDF файлы, когда разработчикам необходимо загрузить эти файлы.

  2. Шаг второй: Загрузка файлов : Этот API используется для загрузки файлов с клиента или сервера на файловый сервер.

  3. Шаг третий: Обновление информации о файле приложения : этот API используется для обновления информации о файле приложения после загрузки изображений, видео и файлов APK и RPK.

  4. Шаг четвертый: Отправка приложения для выпуска : этот API используется для отправки запроса на утверждение приложения. Перед вызовом этого API убедитесь, что информация о приложении введена и пакет программного обеспечения приложения загружен.

Вы можете проверить, решили ли две вышеуказанные части вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...