【问题标题】:Is there an easy way to have a test version of an app and a release version installed on an android phone?有没有一种简单的方法可以在安卓手机上安装应用程序的测试版本和发布版本?
【发布时间】:2014-06-27 19:00:07
【问题描述】:

假设我有一个生产版本 com.android.xyz,这是生产版本 然后我正在开发一些东西,我想在我的手机上加载这个版本和生产版本,所以它是并排的。我知道我可以创建一个像 com.android.abc 这样的新包,然后我会有第二个应用程序,它基本上是 com.android.xyz 的克隆。

想法?

提前致谢, 里德

【问题讨论】:

  • AFAIK,更改包名是唯一的方法。
  • 啊,是的,我知道包名基本上是这样做的,所以我只需更改包名,然后运行脚本进入每个文件和项目并更改所有内容以引用新的使用某种脚本的包名称。
  • 我认为您可能会将 Android 包名称与 Java 包结构混淆。您可以更改前者而不更改后者。
  • 是的,所以当我更改 android 包名称时,整个代码无法编译。不过我会在星期一再试一次。谢谢!

标签: android versioning


【解决方案1】:

如果您正在使用带有 Gradle 的 Android Studio,有一种简单的方法可以做到这一点。我仍然在 AndroidManifest.xml 中保留相同的 packageName(至少当前的 gradle 需要这个重复的定义)

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="internalOnly"
package="com.android.xyz">

build.gradle

def devBuildName = "dev"
def testBuildName = "test"

android {
defaultConfig {
    versionCode 70
    versionName "2.2.3"
    minSdkVersion 10
    targetSdkVersion 19
    packageName "com.android.xyz"
}

buildTypes {
    debug {
        packageNameSuffix "."+devBuildName
        versionNameSuffix "-"+devBuildName.toUpperCase()
    }

    test.initWith(buildTypes.debug)
    test {
        packageNameSuffix "."+testBuildName
        versionNameSuffix "-"+testBuildName.toUpperCase()
    }
}
}

您可以在github 上查看我的完整开发/发布示例。

【讨论】:

  • 这只需要 Gradle。 Android Studio 使用 Gradle,但您不需要 Android Studio 也可以使用 Gradle。
  • 是的,我想我得试试 gradle 了!谢谢大家!
  • 另一种方法是这样操作:stackoverflow.com/questions/3697899/…手动,但只需单击 2 个按钮。
【解决方案2】:

您需要更改软件包名称。 IMO 最简单的方法是编写一个 perl/python 脚本来遍历文件并根据构建类型更改包名称。或者先对文件运行 C 风格的宏预处理器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    相关资源
    最近更新 更多