按国家分类上传Play Store免费和付费应用程序

3

你能否在印度免费发布相同的APK文件,在其他一些国家则需要付费?

如果可以,怎么做呢?

我搜索了一下,发现我们需要为类似情况发布两个不同的apk文件。


你检查过在Android Flavours中是否可能了吗? - p.mathew13
@p.mathew13,您能否详细说明一下?我已经使用过flavours,但没有在这种情况下使用过。 - Amit Vaghela
即使我对Flavours的了解非常少,但我认为可以通过使用Flavours和应用程序包来实现。 - p.mathew13
1个回答

2
有很多方法可以采用,但是由于 Google Play 商店的工作方式,我不认为您能够使用完全相同的 APK 来实现两个目的。我相信应用内购买是您能够实现在不同地区(免费和付费)分发相同 APK 的最接近方法。这意味着您需要自行确定何时让用户为您的应用程序付费......这就是挑战所在......了解用户来自哪个国家。
我会采用的方法涉及创建两个 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将基于这些产品风格创建构建变体。以下是我其中一个不使用产品风格的项目示例...

enter image description here

这只是使用了常见的debug/release构建类型,但如果我已经配置了上述产品风味,则会看到这里有4个构建变体:
  • freeDebug
  • freeRelease
  • paidDebug
  • paidRelease
现在,当您切换构建变量时,您可以提供不同的类实现、不同的资源等,最重要的是,在构建(或打包)应用程序时,您将为每个构建变体生成不同的APK。
因此,您将最终获得一个免费版本的APK和一个付费版本的APK,您可以在Google Play中分别分发它们。它可能看起来像您拥有两个不同的应用程序,但事实上(从开发角度来看),这几乎是使用产品风味开发的相同应用程序,生成这两个应用程序的工作量是最小的!
考虑到以上所有内容,您可以看到“相当容易”实现以下操作:
  1. 仅向一个风味/变体(付费版)添加订阅或应用内购买
  2. 将免费版本分发给印度
  3. 将付费版本分发给世界其他地区
现在,我真的不知道是否有一种简单的方法来实现最后一个目标(3)...在 Google Play 上向除印度以外的所有国家分发。选择一个国家可能是一项艰巨的任务。

@AmitVaghela,这个主题非常广泛,很难涵盖每一个方面。但是我更新了我的答案,提供了更多关于如何利用产品口味的信息。这应该能让你更好地理解并开始使用。 - Leo
我在想,如果一个 APK 能够同时满足两个目的,那将是一件好事,并且希望能够发布单个 APK。 - Amit Vaghela
@AmitVaghela 我不知道,感觉需要付出很多努力才能让它工作,还有另一个问题...如何或何时确定当前安装的是免费版还是付费版呢?我肯定会使用不同版本,这在框架和分发平台的“限制”下非常有意义。 - Leo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接