应用含嵌入式私钥/密钥库文件,Play Store发布失败求助
解决Chaquopy打包APK时包含测试.pem文件触发Play Store安全警报的问题
问题原因
你遇到的是Chaquopy打包时默认包含了Python依赖库future的测试目录(future/backports/test/),其中的.pem文件是测试用证书,并非实际私钥,但被Play Store的安全检测误判为敏感文件。
解决方案
方案1:通过Android SourceSets直接排除测试文件
在你的app模块build.gradle文件中,添加assets文件过滤规则,直接排除触发警报的测试目录:
android { sourceSets { main { assets { exclude "chaquopy/requirements-common.imy.UNPACKED_ARCHIVE/future/backports/test/**" } } } }
添加后重新构建APK,该目录下的所有文件(包括.pem)就不会被打包进去了。
方案2:调整Chaquopy的pip安装参数,避免下载测试文件
在Chaquopy的pip配置中,添加--no-test参数,让pip安装future时不包含测试内容:
chaquopy { pip { // 直接依赖future时的配置 install "future" installOptions "--no-test" // 通过requirements.txt依赖时的配置 // requirements "requirements.txt" // installOptions "--no-test" } }
这个方法从依赖安装阶段就避免获取测试文件,比事后排除更彻底。
方案3:确认依赖版本并清理缓存
- 检查
future库版本,确保使用最新稳定版(可在requirements.txt或pip语句中指定版本,比如future==0.18.3) - 清理Chaquopy缓存目录(通常在
app/build/chaquopy),重新构建项目,避免缓存的旧测试文件被重复打包
内容的提问来源于stack exchange,提问作者YuXuen Wong
相关产品推荐
相关产品推荐

