添加短信权限后Flutter应用更新遭Google Play拒绝,求解决方案
解决Flutter OTP应用被Google Play拒绝的问题
问题根源
你添加的READ_SMS和RECEIVE_SMS属于Android敏感权限,Google Play政策严格限制这类权限的使用场景——只有专门的短信管理类应用才允许申请。普通OTP验证完全不需要读取或接收所有短信的权限,因此你的更新包因权限滥用被拒绝。
合规解决方案
1. 移除敏感权限
直接删除AndroidManifest.xml中的以下两行代码:
<uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.READ_SMS" />
2. 使用Google推荐的SMS Retriever API
这是无需敏感权限的OTP自动读取方案,也是Google认可的合规方式:
- 集成依赖:在Android项目的
app/build.gradle中添加依赖:implementation "com.google.android.gms:play-services-auth-api-phone:18.0.1" - Flutter端实现:使用对应的插件(如
sms_retriever)或Firebase Auth的OTP功能,调用API监听符合格式的短信。 - 短信格式要求:发送的OTP短信末尾必须添加你的应用签名哈希,格式示例:
你的验证码是:123456
FA+9qCX9VSu
3. 保留手动输入选项
作为自动读取的 fallback,务必保留手动输入OTP的功能,确保用户在特殊情况下仍能完成认证。
4. 重新提交应用
更新包移除敏感权限后,提交到Play Console,并在权限声明中明确说明OTP验证的使用场景,确保符合Google的权限政策要求。
内容的提问来源于stack exchange,提问作者Mihir Yadav
相关产品推荐
相关产品推荐

