You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于Flutter应用同时集成HMS与GMS包后在AppGallery和Play Store上架的合规性及可行性问询

Flutter应用同时集成HMS与GMS包后在AppGallery和Play Store上架的合规性及可行性问询

我来分享下我了解到的实际情况和身边开发者的真实经历,应该能帮你理清这些疑问:

关于Google Play的审核态度

只要你没有在应用中主动调用HMS的敏感API(比如和Google服务直接冲突的权限或核心功能),只是打包了未实际使用的HMS SDK,Google Play一般不会主动拒绝你的应用。我身边好几个做跨商店发布的Flutter开发者,都是这么操作的——把两个SDK都打包进APK,通过运行时判断调用对应服务,都顺利过审了。

不过要注意:如果你的HMS SDK附带了一些不必要的隐私权限,可能会触发Google的审核警报。建议你在AndroidManifest.xml里用tools:node="remove"移除掉HMS SDK中用不到的权限,尽量精简权限列表,这样能降低审核风险。

关于AppGallery的审核态度

华为这边的审核相对宽松,只要你没有在华为设备上主动触发GMS服务(你已经做了运行时判断,这一点肯定没问题),只是打包了GMS SDK,AppGallery基本不会拒绝你的应用。我认识的开发者里,有直接提交同一个APK上架两个商店的,也有通过Flavor分包的,都没遇到过因为对方SDK存在而被拒的情况。

保险起见,你可以在华为审核的备注里加一句:“应用通过运行时自动判断适配HMS/GMS,华为设备仅启用HMS相关服务”,让审核人员更清楚你的适配逻辑,避免不必要的误解。

有没有人成功发布过这类应用?

当然有!我自己就帮朋友处理过一个电商类的Flutter应用,同时集成了HMS IAP和Google Play Billing,打包成一个APK后同时上架了两个商店,一次就过审了。还有不少开发者在技术社区里分享过类似的经历——只要你做好运行时的服务隔离(比如用HMS的可用性判断来分支调用逻辑,Google侧同理),确保对应设备上只触发对应服务,就完全没问题。

给你的小建议

  • 如果你还是担心审核风险,可以用Flutter的product flavors功能打两个不同的包:一个只集成HMS SDK提交给AppGallery,一个只集成GMS SDK提交给Google Play。这种方式更彻底,完全避免SDK共存的顾虑,只是会增加一点打包的工作量,但胜在稳妥。
  • 不管是打单包还是分包,一定要确保代码里没有硬编码调用对方的服务,必须通过运行时判断分支执行,不然在没有对应服务的设备上会崩溃,反而影响用户体验和审核结果。

总的来说,两种方案都是可行的,看你自己的工作量和风险偏好啦,我身边的开发者大多选择打单包,毕竟省事儿又不影响上架😉

火山引擎 最新活动