不同版本如何在市场上运作?

时间:2013-03-14 05:50:13

标签: android version apk google-play

我已经完成了谷歌游戏市场的入门应用。我想制作一个免费和付费的版本,所以我想知道的是:

我是否可以在免费版本的付费版本中注释掉这些部分,然后更具体地使用相同的项目引入市场上付费的对话框,只使用不同的版本号并导出apk?

我想知道,因为我听说市场不会让apk拥有相同的包名,但我之前使用的应用程序,如果你有付费版本,你不能有免费版本,所以我猜它的所有关于版本#

谢谢你的时间

1 个答案:

答案 0 :(得分:1)

您是对的,Google Play不允许使用相同的程序包名称上传APK。它使用的是Play商店与其他应用区分不同应用的包名称。

然而,你认为它是照顾同一个应用程序(免费和付费)的版本有点偏离轨道。

然而(再次)相同应用的免费和付费版本可以在使用相同Google帐户下载的同一设备上共存。应用程序中可能存在检查和通知用户的功能。但这不是Google Play商店提供的机制。

以一款名为FriendCaster的应用为例。 (我是一名独立自由职业者,与FriendCaster或OneLouder应用无关

  1. FriendCaster的免费版本为:https://play.google.com/store/apps/details?id=uk.co.senab.blueNotifyFree

  2. 如果相同的应用是付费版本:https://play.google.com/store/apps/details?id=uk.co.senab.blueNotify

  3. 它们都具有相同的版本,具有不同的包名称(结尾不同)。您将能够在一台设备上同时安装这两个应用程序。

    在我的情况下,我对我的应用程序的免费和付费版本使用相同的代码库。唯一的区别是(显然)付费版本的所有广告都是从XML中删除的。

    我使用两个不同的Eclipse工作空间来保持我的免费和付费版本彼此分开。这比其他任何东西更方便。您可以将两个项目放在同一个Eclipse工作区中。

    但是,通过对OP的评论,您无法使用同一项目导出具有不同包名称的两个不同的APK。如果您已完成付费版本,则需要为免费版本创建一个新项目。而且您需要独立导出每个项目的APK。

    为了在代码库中保持奇偶校验,我尽可能避免使用硬代码。例如,在打开应用程序的Google Play详细信息页面的活动中,我使用的内容不是硬编码我的包名:

    Uri playUri = Uri.parse("market://details?id=" + Feedback.this.getPackageName());
    Intent openGooglePlay = new Intent(Intent.ACTION_VIEW, playUri);
    try {
        startActivity(openGooglePlay);
    } catch (ActivityNotFoundException e) {
    
        // SHOW A TOAST
        String tstMessage = "Could not launch the Play Store app.";
        showToast.showToast(tstMessage);
    }
    

    我希望我对这篇文章有所了解。如果您需要任何澄清,请随时提出要求。 : - )

相关问题