发布应用至Google Play遇OpenSSL 1.1.1g缺陷报错,求助解决方案
解决Google Play提示Realm中OpenSSL 1.1.1g缺陷的问题
问题根源
你遇到的问题是Realm 10.24.0依赖的OpenSSL 1.1.1g存在已知安全漏洞,Google Play的安全检测机制触发了警告。结合你的React Native版本(0.61.4),可以通过以下两种方案解决:
方案1:升级Realm到修复漏洞的版本
Realm在后续版本中已更新依赖的OpenSSL版本,你可以尝试升级到兼容React Native 0.61.4的最新稳定版:
- 修改项目根目录的
package.json,将realm版本改为"realm": "^10.31.0"(该版本修复了OpenSSL漏洞,且适配RN 0.61.x) - 执行依赖安装命令:
npm install # 或 yarn install - 清理缓存并重新打包:
rm -rf node_modules && rm package-lock.json # 清理旧依赖 cd android && ./gradlew clean # 清理Android构建缓存 cd .. && npm run android # 重新构建项目
方案2:强制替换OpenSSL依赖(若升级Realm有兼容性问题)
如果升级Realm后出现RN版本兼容问题,可以直接在Android构建配置中强制替换为安全的OpenSSL版本:
- 打开
android/build.gradle,在allprojects块中添加版本强制策略:allprojects { repositories { // 保留原有仓库配置 } configurations.all { resolutionStrategy { force 'com.android.ndk.thirdparty:openssl:1.1.1q' } } } - 打开
android/app/build.gradle,在dependencies块中添加Conscrypt库(增强OpenSSL兼容性):dependencies { // 保留原有依赖 implementation 'org.conscrypt:conscrypt-android:2.5.2' } - 清理构建缓存并重新打包:
cd android && ./gradlew clean cd .. && npm run build:android # 执行release打包
备选方案:排除x86架构(仅当不需要支持x86模拟器时)
如果你不需要适配x86架构的设备/模拟器,可以直接在构建配置中排除该架构,避免触发漏洞检测:
在android/app/build.gradle的defaultConfig块中添加:
android { defaultConfig { // 保留原有配置 ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64' } } }
内容的提问来源于stack exchange,提问作者Tarun Kumar
相关产品推荐
相关产品推荐

