是否可以在Google Play上更改Android应用的程序包名称?


119

我想知道更改Google Play上的Android应用程序的实际包名在技术上是否可行,而不是是否容易。包名称是指将显示在URL中的名称。拜托,谁能告诉我为什么/不可能?谢谢!


URL中将显示的名称。那是什么?举个例子
stinepike

Answers:


125

来自Dianne Hackborn:

无法改变的事情:

其中最明显,最明显的是“清单包名称”,即您在其AndroidManifest.xml中为应用程序提供的唯一名称。该名称使用Java语言样式的命名约定,Internet域名所有权有助于避免名称冲突。例如,由于Google拥有“ google.com”域,因此我们所有应用程序的清单软件包名称都应以“ com.google”开头。为了避免与其他开发人员发生冲突,对开发人员而言,遵循此约定很重要。

一旦以清单包名称发布了应用程序,这将永远是应用程序的唯一标识。切换到其他名称将导致一个全新的应用程序,该应用程序不能作为现有应用程序的更新安装。

关于这里无法更改的更多内容

关于您对来自Google Play的URL的问题,在那里定义的包已链接到您在AndroidManifest.xml文件中拥有的应用程序的完全合格的包。点击此处,详细了解Google Play的链接格式。


7
值得一提的是,由于我四处寻找,所以您可以在java中更改实际包的包名称除了清单中的其他位置之外,基本上都可以更改。清单中的那个或多或少与其他地方的那个无关。
lahwran 2016年

3
@lahwran我遇到了与Android Studio不匹配时正确构建的问题-当它们匹配时,问题就消失了。
elBradford

有趣的是,我想知道这是否已经改变。如果它使它们与众不同,但从未得到支持,我不会感到惊讶。
lahwran

1
@Voicu是,如果我们在测试模式上传第一内建有可能更改包名称和不希望改变包在释放模式
Tejas的潘迪亚

那么,如果我有一个付费版本以及一个具有相同软件包名称的免费版本,该怎么办?无论在Play商店为不同的应用程序
锰铁Dharamshi

71

不,您不能只是更改它,而必须将新软件包作为新应用上传。看一下Google的应用Talk,其名称已更改为Hangouts,但程序包名称仍为com.google.android.talk。因为这不是可行的:)干杯。


4
您会认为Google会自己意识到这个问题
kkarakk

是否可以将Play商店中存在的andorid应用包名称中的单个字母从大写更改为小写?
Nilesh Panchal,

23

据我所知,您可以做的是“退休”您以前的应用程序,并将所有用户重定向到您的新应用程序。Google不支持此过程(tsk ... tsk ...),但是可以通过四个步骤来实现:

  1. 更改当前应用程序以向用户显示有关升级的消息,并将他们重定向到新的应用程序列表。全屏消息可能会包含一些友好的文本。该消息可以理想地远程触发,但也可以使用截止日期。(但是那对您来说将是一个艰难的截止日期,所以要小心……;)

  2. 发行经过修改的旧版应用程序作为升级,可能还会发布一些功能升级/错误修复,以“吸引交易”给用户。仍然不能保证所有用户都会升级,但是大多数用户可能会升级。

  3. 使用更新的程序包名称准备新应用程序,然后将其上传到商店,然后在旧应用程序中触发消息(或者,如果您选择,请等到消息过期)。

  4. 在Play商店中取消发布旧应用,以免进行任何新安装。取消发布应用程序并不意味着已经安装该应用程序的用户将无法再访问它,但是至少潜在的新用户不会在市场上找到它。

不理想,可能会给用户带来烦恼,有时由于应用程序的状态/可能性甚至无法实现。但是,由于Google别无选择,这是将旧应用程序的用户迁移到“新”应用程序的唯一方法(即使它不是真的)。更不用说如果您无法访问旧应用程序的源代码和代码签名详细信息,那么您所能做的就是希望他的用户会注意到新应用程序...

如果有人想出了更好的方法:请告诉。


5
尽管这是最好的安装新应用程序的方法,但必须记住,旧应用程序仍将驻留在设备上-因为这并不是真正的升级,而是新安装的程序(除非用户手动卸载以前的程序)。因此,您将在设备上同时拥有旧应用程序和新应用程序,并且可能带有相同的启动器图标-使用户感到困惑-旧的还是新的。
贾斯珀

1
没错,很遗憾,在新应用程序的安装过程中,无法删除旧应用程序。但是,可能可以检测到旧应用程序的存在并警告用户将其删除。这可以在启动新应用程序时或在安装后事件处理程序(developer.android.com/reference/android/content/…)中完成。
racs

1
同样,旧应用程序可以检测到新应用程序的存在,然后简单地举杯表演,然后启动新应用程序并退出。
莫里茨都

5

不可以,除非您可以将其作为新应用发布到Play商店中,否则不能更改软件包名称:

一旦以清单包名称发布了应用程序,这将永远是应用程序的唯一标识。切换到其他名称将导致一个全新的应用程序,该应用程序不能作为现有应用程序的更新安装。Android手册也在此处进行了确认:

警告:发布应用程序后,您将无法更改程序包名称。程序包名称定义了您的应用程序的身份,因此,如果您更改它的名称,则它将被视为另一个应用程序,并且以前版本的用户无法更新到新版本。如果您可以将应用程序的新版本发布为一个全新的实体,则可以这样做-当然,只需从Play商店中删除旧应用程序(如果需要),然后使用不同的程序包名称发布新的应用程序。


2

如果您指的是com.example.app,则不,我不能理解,它不会被视为新应用


2

永远不会,因为包名称是您应用程序的唯一名称标识符,您就无法这样做.....


1

完整指南: https : //developer.android.com/studio/build/application-id.html

根据Android官方博客:https : //android-developers.googleblog.com/2011/06/things-that-c​​annot-change.html

我们可以这样说:

  • 如果清单软件包名称已更改,则新应用程序将与旧应用程序一起安装,因此它们都同时存在于用户的设备上。

  • 如果签名证书更改,则尝试将新应用程序安装到设备上将失败,直到卸载了旧版本。

按照Google App Update检查清单:https : //support.google.com/googleplay/android-developer/answer/113476?hl=zh-CN

更新您的应用

准备您的APK

当您准备对APK进行更改时,请确保同时更新应用的版本代码,以便现有用户可以收到您的更新。

使用以下清单来确保您的新APK已准备就绪,可以更新现有用户:

  • 更新后的APK的软件包名称必须与当前版本相同。
  • 版本代码必须大于当前版本。了解有关对应用程序进行版本控制的更多信息。
  • 更新后的APK需要使用与当前版本相同的签名进行签名。

要验证您的APK使用的证书与以前的版本相同,您可以在两个APK上运行以下命令并比较结果:

$ jarsigner -verify -verbose -certs my_application.apk

如果结果相同,则说明您使用的是相同的密钥,并准备继续。如果结果不同,则需要使用正确的密钥对APK重新签名。

了解有关签署应用程序的更多信息

上载APK 一旦APK就绪,就可以创建新版本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.