开发者社区> 问答> 正文

应用研发平台EMAS Android热修复依赖和 人脸认证sdk 两者冲突了要怎么处理?

应用研发平台EMAS Android热修复依赖的com.aliyun.asm:alicloud-android-utdid 和 人脸认证sdk的com.alipay.android.phone.thirdparty:utdid-build两者冲突了要怎么处理?

展开
收起
2401。 2023-09-02 11:08:31 67 0
4 条回答
写回答
取消 提交回答
  • 删掉其中一个就行。此回答整理自“应用研发平台EMAS开发者交流群”。

    2023-09-04 22:02:59
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    当 Android 热修复依赖和第三方人脸认证 SDK 冲突时,您可以尝试以下方法进行处理:

    1. 更新依赖库:
      检查您的项目中使用的 com.aliyun.asm:alicloud-android-utdid 和 com.alipay.android.phone.thirdparty:utdid-build 的版本。如果可能,请更新这些依赖库到最新版本,以解决冲突。
    2. 添加兼容性支持:
      如果您无法更新依赖库,可以尝试在项目中添加兼容性支持。例如,您可以在 app/build.gradle 文件中添加以下代码,以解决版本冲突:

    android {
    compileOptions {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
    }
    defaultConfig {
    // 其他配置...
    compileOptions {
    targetCompatibility = JavaVersion.VERSION_1_8
    }
    }
    allprojects {
    repositories {
    // 其他仓库...
    maven {
    url "https://maven.aliyun.com/repository/public/"
    }
    }
    }
    }
    CopyCopy

    1. 配置模块依赖:
      如果您的项目使用了模块化构建,可以尝试在 app/build.gradle 文件中配置模块依赖。例如,您可以将以下代码添加到 app/build.gradle 文件中:

    dependencies {
    implementation project(':utdid')
    }
    CopyCopy

    1. 检查依赖库的透明度:
      如果您使用的依赖库具有透明度选项,可以尝试将透明度设置为 true,以解决冲突。例如,在 app/build.gradle 文件中添加以下代码:

    android {
    compileOptions {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
    transitiveTrue
    }
    }
    CopyCopy

    1. 修改应用程序代码:
      如果您仍然遇到问题,可以尝试修改应用程序代码,以避免使用冲突的类和方法。例如,您可以更改应用程序中使用的类名和方法名,以避免与依赖库冲突。
    2023-09-02 21:18:04
    赞同 展开评论 打赏
  • 当应用研发平台EMAS的Android热修复依赖和人脸认证SDK的两个库冲突时,您可以尝试以下几种处理方法:
    image.png

    1. 升级依赖库版本:查看不同库的最新版本,尝试升级其中一个或两个库的版本。有时候,较新的版本可能已解决了库之间的冲突问题。

    2. 排除冲突依赖项:如果升级版本无法解决冲突问题,您可以使用Gradle的exclude语句来排除其中一个库中与另一个库冲突的依赖项。例如:

      implementation ('com.aliyun.asm:alicloud-android-utdid:版本号') {
          exclude group: 'com.alipay.android.phone.thirdparty', module: 'utdid-build'
      }
      

      这样做将会排除人脸认证SDK中与热修复依赖库冲突的部分。

    3. 联系供应商获取支持:如果上述方法都无法解决冲突问题,建议您联系EMAS提供商或人脸认证SDK的供应商,并向他们报告该冲突问题。他们可能能够提供特定于这两个库冲突的解决方案或新版本。
      image.png

    2023-09-02 18:04:53
    赞同 展开评论 打赏
  • 阿里云-云产品SDK UTDID冲突解决方案
    image.png

    1. 什么是UTDID冲突?
      UTDID作为阿里集团移动端SDK通用组件,包括阿里云在内的许多平台产品移动端 SDK 对其有依赖,若同时集成多平台移动端SDK,可能发生UTDID冲突。

    UTDID命名形式:

    Android :utdid4all-x.x.x.jar
    iOS :UTDID.framework

    1. 怎么解决UTDID冲突?
      注意:Android UTDID版本号必须>= v1.1.5.3,若不能确认UTDID版本号,请参考下述方案,保留阿里云平台的UTDID包。

    2.1 手动集成解决方案
    手动删除重复的UTDID SDK,仅保留一个UTDID SDK。

    说明:建议保留阿里云平台下载的UTDID SDK。

    2.2 远程仓库集成解决方案
    Android集成时,可以通过exclude关闭其他产品SDK对UTDID的传递性依赖,示例如下所示:

    compile ('com.xxx:xxx.xxx:1.0.1') {
    exclude (module:'alicloud-android-utdid')
    }

    image.png

    iOS集成时,如果通过CocoaPods进行远程仓库依赖,由于CocoaPods无法关闭传递性依赖,SDK集成需要修改为手动集成。
    2.3 与支付宝SDK UTDID冲突
    支付宝SDK是通过源码方式集成的UTDID,所以不适用于上述的手动集成解决方案和远程仓库集成解决方案。

    可下载并集成 剥离UTDID的支付宝SDK,保留阿里云平台的UTDID包。该版本SDK和通用支付宝SDK保持同步更新,无需担心支付宝相关功能受影响。
    image.png

    2023-09-02 14:19:23
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
基于阿里巴巴以及合作伙伴的最佳实践,围绕大前端、云原生领域的相关技术热点(小程序、Serverless、应用中间件、低代码、DevOps)展开行业探讨,与开发者一起探寻云原生时代应用研发的新范式。
相关文档: 移动研发平台
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载