Android打包及上架应用市场问题处理
一、Gradle 配置参数含义:
-
compileSdkVersion: 29
- 表示项目编译时使用的 Android SDK 版本为 API 29(Android 10),仅影响编译阶段的行为(如代码语法检查、资源处理等),不直接影响运行时兼容性。
-
buildToolsVersion: "29.0.2"
- 表示使用的构建工具版本为
29.0.2
,需与 SDK 版本匹配。构建工具包含aapt
、zipalign
等关键工具。
- 表示使用的构建工具版本为
-
minSdkVersion: 21
- 应用支持的最低 Android 版本为 API 21(Android 5.0),低于此版本的设备无法安装应用。
-
targetSdkVersion: 29
- 应用的目标运行版本为 API 29(Android 10),系统会在此版本的兼容模式下运行应用,启用对应 API 的行为和权限控制。
二、修改 targetSdkVersion
为 30 的影响:
若仅修改 targetSdkVersion: 30
但未进行代码适配,可能导致以下问题:
- 存储权限变更(Scoped Storage)
- Android 11(API 30)强制启用分区存储,若应用未适配,文件读写操作可能失败。
- 后台位置访问限制
- 需要用户在前台主动授予权限,否则后台位置访问会被拒绝。
- 包可见性(Package Visibility)
- 查询其他应用信息(如包名)需在
AndroidManifest.xml
中声明<queries>
。
- 查询其他应用信息(如包名)需在
- 应用商店审核问题
- Google Play 和国内商店可能强制要求
targetSdkVersion >= 30
,未适配将导致拒审。
- Google Play 和国内商店可能强制要求
三、加固后签名工具版本选择:
- 必须使用
build-tools
中版本 ≥ 30.0.0 的apksigner.jar
- 原因:Android 11(API 30)引入的签名机制变更(如 V3 签名),旧版本工具可能不兼容。
- 推荐路径:
SDK\build-tools\30.0.3\lib\apksigner.jar
(建议选择最新稳定版,如34.0.0
)。
四、上架 OPPO 应用商店潜在问题:
targetSdkVersion
未达标- OPPO 可能要求
targetSdkVersion ≥ 30
,但若已修改为 30 则无此问题。
- OPPO 可能要求
- 权限声明缺失
- 未适配 Android 11 的权限(如
ACCESS_BACKGROUND_LOCATION
)可能导致功能异常。
- 未适配 Android 11 的权限(如
- 隐私合规问题
- OPPO 对隐私政策弹窗、数据收集逻辑有严格审核,需确保加固未破坏隐私相关代码。
- 签名不一致
- 加固后重签名使用的证书必须与 OPPO 开发者后台登记的证书一致,否则会被视为非法应用。
- 兼容性崩溃
- 若未充分测试 OPPO 设备(如 ColorOS 系统),可能因定制 ROM 的权限管理或后台限制导致崩溃。
建议操作:
- 适配 Android 11:检查存储、位置、包可见性等关键变更。
- 使用最新签名工具:避免签名兼容性问题。
- 全量测试:在 OPPO 真机上测试权限弹窗、后台行为等场景。
- 检查隐私政策:确保加固未篡改隐私相关代码或资源。