微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将应用程序包 (.aab) 上传到我的私有 Nexus 存储库?

如何解决如何将应用程序包 (.aab) 上传到我的私有 Nexus 存储库?

我有一个 GitLab CI 管道,用于构建 Ionic 应用程序,然后将其上传到我的 Nexus Maven 存储库。我生成一个 apk 和一个 aab 文件,我通过 cURL 上传。但是,即使将 APK 文件正确推送到 repo,也找不到 AAB 文件

.gitlab-ci.yml 文件

build-apk:
  stage: build
  tags: [docker]
  script:
    - rm package-lock.json
    - npm install -g ionic@5.4.15 cordova@9.0.0
    - npm run build:android:$STAGE
    - cd platforms/android
    - ./gradlew bundleRelease
    - cd ../..
    - echo $ANDROID_DEBUG_KEYSTORE | base64 --decode > key.keystore
    - mv platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk app-release.apk
    - mv platforms/android/app/build/outputs/bundle/release/app.aab $CI_PROJECT_NAME.aab
    - jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.keystore -storepass "$ANDROID_DEBUG_PAsspHRASE" app-release.apk <keyName>
    - jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore key.keystore -storepass "$ANDROID_DEBUG_PAsspHRASE" $CI_PROJECT_NAME.aab <keyName>
    - $ANDROID_SDK_ROOT/build-tools/30.0.2/zipalign 4 app-release.apk $CI_PROJECT_NAME.apk

deploy-mobile:
  stage: deploy
  tags: [shell]
  cache: {}
  script:
    - curl -u $NEXUS_USER:$NEXUS_PWD -v --upload-file $CI_PROJECT_NAME.aab $NEXUS_MAVEN/$CI_PROJECT_NAME/$CI_PROJECT_NAME-$TAG.aab
    - curl -u $NEXUS_USER:$NEXUS_PWD -v --upload-file $CI_PROJECT_NAME.apk $NEXUS_MAVEN/$CI_PROJECT_NAME/$CI_PROJECT_NAME-$TAG.apk
  dependencies:
    - build-apk

当我比较两个命令的日志时,我看到的唯一区别是 aab 上传的 HTTP 响应是 400 个错误请求(apk 上传201 Created 结束) >).

是否有任何缺失的信息我应该添加到我的 cURL 命令中以便上传 aab 文件?我必须使用 Maven 命令上传 aab 文件吗?

解决方法

问题来自我的存储库配置,因为它不允许上传不符合 MIME 要求的文件。取消选中该选项会导致上传成功。
下一步是弄清楚我的 NXRM 版本是否可以添加 support for custom MIME 类型,因为禁用对存储库中存在的所有文件的验证是不正确的。

Repository configuration: the checkbox for validating that all content is of a MIME type appropriate for a Maven repository is checked

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。