Gáb*_*bor 8 flutter google-play-console huawei-mobile-services
我有一个带有常见谷歌广告和应用内支付功能的应用程序。它已被 Play 商店接受。现在我想让它同时支持GMS和HMS(根据适当服务的可用性,应用程序可以决定使用哪个平台)。该应用程序内置了华为功能,在我自己的设备上测试时运行良好。
然而,一旦华为的库与该应用程序捆绑在一起,Play商店控制台就会拒绝它。没有错误消息,只有一个红色感叹号。情况毫无疑问,我开始将与华为相关的部件一件一件地移除,当最后一个移除时,捆绑包又被自动接受了。
是的,当然,我可能犯了一些我不知道的错误,但情况相当可疑。如果有什么区别的话,我会使用 Flutter,并尝试像现在一样上传应用程序包,而不是 APK。似乎成功或失败的 HMS 库com.huawei.hms:hwid:4.0.0.300来自 Maven 存储库https://developer.huawei.com/repo/。
那么,我到底是看到了东西还是没有看到东西呢?
好的,任务继续。
这是最近的新闻:https ://support.google.com/googleplay/android-developer/answer/9934569
目前正在使用替代计费系统的任何现有应用程序都需要将其删除才能符合此更新的要求。对于这些应用程序,我们提供延长的宽限期,直至 2021 年 9 月 30 日,以便进行任何必要的更改。2021 年 1 月 20 日之后提交的新应用程序需要符合规定。
无论政策如何规定,Play 管理中心似乎已经强制执行了。正如我通过研究应用程序包发现的那样,风味方法还不够。即使使用其他风格,仍然会保留一些 Flutter 引用的包。也许只是引用的名称,而不是摇树之后的实际代码,但这已经足以拒绝。
因此,归根结底,如果我们真的想编写跨生态系统、单一来源的 Flutter 应用程序,我真的认为这个问题需要解决,并为我们自己、开发人员找到一些明确的指导方针。对于我来说,我当然想做。
我终于找到了一种解决方法,不是自动的,而是一种可用的方法。
在项目中创建两个子包。它们看起来像普通的 Flutter 包,但驻留在您的应用程序中。基本上,创建两个文件夹,gms_support并hms_support在常用的lib. 两者都是具有通常结构的包:
将所有依赖于供应商的内容放入相应lib\src文件夹内的相同结构的文件中,并确保两个XXX_support.dart文件都以通常的方式导出它们。这些实现应该使用相同的类和相同的签名。每个都pubspec.yaml指的是其实现所需的自己的、特定于供应商的 Flutter 插件。
您的主应用程序pubspec.yaml包含两个参考:
dependencies:
...
gms_support:
path: gms_support/
hms_support:
path: hms_support/
Run Code Online (Sandbox Code Playgroud)
另外,support.dart在主应用程序中添加另一个:
export 'package:gms_support/gms_support.dart';
export 'package:hms_support/hms_support.dart';
Run Code Online (Sandbox Code Playgroud)
无论您在应用程序中需要特定于供应商的行为,都可以导入并使用此support.dart文件。
然后,当您必须从一种口味更改为另一种口味时,您始终必须同步更改三件事:
support.dartpubspec.yaml并进行发布更新| 归档时间: |
|
| 查看次数: |
3204 次 |
| 最近记录: |