我将采用的方法涉及通过创建两个产品口味(免费,付费)轻松创建2个APK.同样,使用这种方法,您将获得两个APK,但是据我所知,这是实现分发目标的最有效方法.
我认为这种方法更有效的原因是,您无需在代码中添加很多评估即可确定设备的国家/地区.实际上,无论使用哪种方法确定设备(或用户)所在的国家/地区,您几乎永远都无法对这些信息做很多事情. GPS位置不是一个很好的指标(用户可能是西班牙的印度游客或印度的西班牙游客),没有SIM卡的电话或平板电脑的电话服务也会失败.因此,我将把答案集中在两种产品口味上并生成两个APK.
要创建这两种产品口味,您需要在gradle中声明它们.
android {
flavorDimensions "version"
productFlavors {
free {
dimension "version"
applicationIdSuffix ".free"
versionNameSuffix "-free"
}
paid {
dimension "version"
applicationIdSuffix ".paid"
versionNameSuffix "-paid"
}
}
}
上面的声明只是告诉Android Studio该应用程序使用两种产品版本(免费和付费),并且applicationId(和版本名称)将以该版本名称作为后缀.
这是必要的,因为您将生成两个APK.
要注意的一件事是,所有产品类型都会“继承” defaultConfig部分中定义的设置,因此您应该在defaultConfig中定义所有常用配置.
现在,当您同步项目时,Android Studio将基于这些产品风格创建构建变体.这是我的一个不使用产品调味料的项目的示例…
这只是使用常见的调试/发布构建类型,但是如果我已经配置了上述产品风味,那么您将在此处看到4个构建变体:
> freeDebug
> freeRelease
> paidDebug
>已付费
现在,当您切换构建变体时,您可以提供类的不同实现,不同的资源等,最重要的是,在构建(或打包)应用时,您将为每个构建变体生成不同的APK.
因此,您最终将获得免费发行的APK和付费发行的APK,可以在Google Play中清晰地分发它们.看起来您有两个不同的应用程序,但是事实是(在开发方面)几乎是使用Product Flavors开发的同一应用程序,并且生成这两个应用程序的工作量最少!!!
考虑到以上所有内容,您可以看到“相当容易”:
>仅将订阅或应用内购买添加到一种口味/变体中(付费)
>向印度分发免费的一本
>将报酬分配到世界其他地方
现在,我真的不知道是否有一种简单的方法可以达到最后一个点(3)…在Google Play中向除一个国家(印度)以外的所有国家/地区分发内容.一次选择一个国家可能是一项艰巨的任务