我开发了一款使用Parse
和push notifications
(GCM,Google Cloud Messaging
)的小游戏。但是,当我尝试将我的应用程序上传到亚马逊商店时,他们说它不会在某些设备上发布,因为它使用的是GCM。
因此,解决方案很简单,只需删除notifications
即可。
我遇到的问题是我想尽可能地自动生成apk代。
在iOS下(我是iOS开发人员,Android新手),我只创建2个目标并使用DEFINE我可以根据目标修改代码。
我希望有类似的东西,所以我在亚马逊版本中使用了另一个manifest
,当然我删除了推送代码。
使用Android Studio
时该怎么办?
我怀疑我必须使用gradle或者模块的概念,因为在signed apk
中创建Android Studio
时我必须选择“app” module
。
您有任何想法,建议或链接吗?感谢。
答案 0 :(得分:7)
您可以使用产品口味来实现这一目标。每个产品风味都可以拥有自己的AndroidManifest,每个风味的清单将在编译时与主应用程序清单合并。请参阅文档的build variants部分。
例如,您可以定义以下产品风格
src/main/AndroidManifest.xml
src/amazon/AndroidManifest.xml
src/googleplay/AndroidManifest.xml <-- put GCM permissions here
然后您可以设置以下清单文件
dependencies {
googleplayCompile 'com.google.android.gms:play-services-location:7.0.0'
}
您还可以将所有Google Play服务代码和相关内容放入googleplay风格中,例如:
_id
答案 1 :(得分:3)
使用Android Studio时该怎么办?
这是product flavors的工作。创建google
风味和amazon
风味。然后:
使用googleCompile
代替compile
,用于Play Services SDK依赖项。
仅在您的google
风格版清单中提供Play服务元数据。
将依赖于Play Services SDK的代码放在google
flavor的sourceset中。请注意,您可能需要将该代码的一些钩子抽象到您在每种风格中实现的NotificationStrategy
类,其中google
一个使Play服务工作,amazon
风格别的东西(或什么都没有)。然后,main
中的代码可以引用NotificationStrategy
并为每种风格获得正确的实现。