2

我开发了一个使用Parseand push notifications(GCM, Google Cloud Messaging) 的小游戏。但是,当我尝试将我的应用程序上传到亚马逊商店时,他们说它不会在某些设备上发布,因为它使用 GCM。

因此,解决方案很简单,只需删除notifications. 我遇到的问题是我想尽可能地自动化 apk 生成。在 iOS 下(我是 iOS 开发人员,Android 新手),我只创建 2 个目标并使用 DEFINE 我可以根据目标修改代码。我想要类似的东西,所以我manifest在亚马逊版本中使用了另一个,当然我删除了推送代码。

使用时我该怎么做Android Studio?我怀疑我必须使用 gradle 或者模块的概念,因为在创建signed apkAndroid Studio我必须选择“app” module.

您有什么想法、建议或链接吗?谢谢。

4

2 回答 2

8

您可以使用产品风味来完成此操作。每个产品风格都可以有自己的 AndroidManifest,每个风格的清单将在编译时与主应用程序清单合并。请参阅文档的构建变体部分。

例如,您可以定义以下产品风味

productFlavors {
    amazon
    googleplay
}

然后您可以设置以下清单文件

src/main/AndroidManifest.xml
src/amazon/AndroidManifest.xml
src/googleplay/AndroidManifest.xml <-- put GCM permissions here

您还可以将所有 Google Play 服务代码和依赖项放入您的 googleplay 风格中,例如:

dependencies {
    googleplayCompile 'com.google.android.gms:play-services-location:7.0.0'
}
于 2015-04-27T14:17:49.803 回答
3

使用 Android Studio 时我该怎么做?

这是产品风味的工作。创造一种google味道和一种amazon味道。然后:

  • 使用googleCompile,而不是compile,作为您的 Play 服务 SDK 依赖项。

  • 仅在您google的清单版本中具有 Play 服务元数据。

  • 将依赖于 Play 服务 SDK 的代码放在google风​​味的源集中。请注意,您可能需要将该代码的一些钩子抽象到NotificationStrategy您在每种风格中实现的类中,其中google播放服务工作的一个,amazon风格做其他事情(或什么都不做)。然后,您的代码main可以引用NotificationStrategy并获得每种风格的正确实现。

于 2015-04-27T14:20:26.600 回答