Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:对多个商店使用相同的applicationId是一种好的做法吗?_Android_Gradle_Android Productflavors_Applicationid - Fatal编程技术网

Android:对多个商店使用相同的applicationId是一种好的做法吗?

Android:对多个商店使用相同的applicationId是一种好的做法吗?,android,gradle,android-productflavors,applicationid,Android,Gradle,Android Productflavors,Applicationid,我正在为我的Android应用设置不同的应用风格,以便为不同的应用商店生成不同的应用版本 现在,我想知道我是否应该更好地为所有商店使用相同的应用程序ID,还是应该始终为新店使用新的应用程序ID 在所有商店使用相同的applicationId时,我会遇到任何陷阱吗?我建议您使用相同的applicationId。否则,用户将能够安装多个版本的应用程序 : 每个Android应用程序都有一个独特的应用程序ID,看起来像Java包名,比如com.example.myapp此ID唯一标识设备上和Googl

我正在为我的Android应用设置不同的应用风格,以便为不同的应用商店生成不同的应用版本

现在,我想知道我是否应该更好地为所有商店使用相同的
应用程序ID
,还是应该始终为新店使用新的
应用程序ID


在所有商店使用相同的
applicationId
时,我会遇到任何陷阱吗?

我建议您使用相同的
applicationId
。否则,用户将能够安装多个版本的应用程序

:

每个Android应用程序都有一个独特的应用程序ID,看起来像Java包名,比如com.example.myapp此ID唯一标识设备上和Google Play Store中的应用程序


更多的研究使我得出结论,使用相同的应用程序ID(如oemel09所建议的)是最好的选择(至少在我的情况下是这样)

  • 这样,该应用程序就不能在同一部手机上安装两次。(不能在一部手机上安装具有相同
    applicationId
    的两个应用。)
  • 但是,从Store X安装的应用程序随后可以使用Store Y的另一个版本进行更新。如果Store X的应用程序版本与一个表单Store Y略有不同,则可能会导致问题
  • 为两个应用商店使用不同的证书(应用签名)可以解决此问题。不同的证书不允许一个存储覆盖另一个存储的应用程序版本。 (如果你像我一样,通过Google Play激活了
    应用程序签名
    ,你将无法使用相同的证书。)

每个应用程序必须具有唯一的appId。因此,如果您发布了一个,那么使用一个,如果多个使用不同的响应。我认为使用相同的applicationId将允许play store更新应用程序,即使它是从其他商店安装的。这样,另一个商店的自定义版本将被google play版本覆盖,这可能不利于用户体验?我认为如果用户安装两次相同的应用程序,他们会更加困惑。您是否有任何特定的用例,或者为什么您认为您的用户会从不同的来源安装和更新您的应用程序?这是真的,但这可能会有其他问题。使用相同的applicationId(通常)将允许所有商店更新应用程序。如果我想在play store中发布一个带有谷歌服务的应用程序版本,在华为商店中发布一个带有华为服务的应用程序版本,那么如果华为商店从play store更新应用程序,并用华为服务替换谷歌服务,那将是非常糟糕的。我在下面的回答中解释了这一点。