以下哪种方法是为应用程序库和Play Store发布准备应用程序的最佳做法
搜索网络我发现几个方法:
- (1)使用风格(一个用于Google Play,一个用于appGallery),每个风格定义相同的布尔字段“isHuawei”(
no
用于googlePlay,yes
用于appGallery风格)。基于该布尔值,是否使用google play服务
productFlavors {
google {
buildConfigField "boolean", "isHuawei", "false"
}
huawei {
buildConfigField "boolean", "isHuawei", "true"
}
}
- (2)在Gradle中添加应用图库发布:
project.gradle.startParameter.excludedTaskNames.add('processHuaweiReleaseGoogleServices')
如果此任务不为华为发布而运行,是否有任何不便?
- (3)下面的代码,以查明是否运行在华为(没有Google Play)或手机与谷歌播放
FirebaseMessaging.getInstance().token.addOnCompleteListener { task -> if (!task.isSuccessful) { noGMS } else { GMS }}
- -(四)利用
GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(nContext))
以确定此版本是否适用于带GMS电话。
在应用程序启动时使用上面的1、3和4来确定应用程序当前是否在带或不带GMS的手机上运行是一个很好的做法?如果这三个都返回false
,则可能意味着应用程序正在不带GMS的手机上运行。
有华为手机可以有App Gallery和Google Play商店。如何管理运行这两个商店的华为手机的App Gallery发布?
1条答案
按热度按时间gmxoilav1#
要在华为手机上的AppGallery中发布应用,您会遇到两种情况:
**如果您想在两种情况下使用一个APK:**为了保证您的应用在GMS+HMS的华为手机和仅HMS的华为手机上都能正常工作,您可以使用帖子中提到的1、3、4来区分手机是GMS手机还是HMS手机,并在代码中进行不同的处理。原因是:在仅支持华为HMS的手机上,它没有GMS来支持一些Google SDK,如IAP、Map等。您需要在您的应用中集成华为HMS IAP、Map等SDK,以便使其正常工作。
您可以在此处找到所有详细的HMS SDK信息:https://developer.huawei.com/consumer/en/hms
或者,对于复杂的业务逻辑和支持未来的API更改(包括弃用),您可以使用两个代码库:一个为华为手机集成的HMS SDK,一个为华为手机集成的HMS SDK,一个为华为手机集成的HMS和GMS。这也意味着您需要为您在华为AppGallery中提交的APK使用不同的包名和密钥,这将有助于避免与Google Play商店中的版本发生更新冲突。