在GIT中管理具有不同包名称的相同项目

时间:2018-04-18 06:49:10

标签: android git bitbucket

我有一个项目可以说项目A (主项目/主要)。我需要创建相同的项目,但使用相同的代码不同的包名称 项目B 项目C 。 如果更改适用于所有更改,那么我将在项目A 中进行更改,这样如果我自动更新项目B 项目C ,他们应该得到改变。 但是如果为项目级别进行任何自定义,那么我只需要更改项目B 。它不应影响项目A C 。像这样我如何使用git处理所有三个项目。 是否可以使用分支机构。 在此先感谢...

1 个答案:

答案 0 :(得分:0)

在代码中使用build variants,而不是依赖于git中的多个分支。这样,可以将单个源代码生成为多个应用程序。

android {
    compileSdkVersion ...
    buildToolsVersion ...

    defaultConfig {
        applicationId "com.yourapp"
        ...
    }

    // Specify the build dimension and flavors
    flavorDimensions "type"
    productFlavors {
        typeA {
            dimension "type"
            applicationIdSuffix '.typea' // Add this to differentiate the application ID
            versionNameSuffix "-typea" // Add this to differentiate version naming
        }
        typeB {
            dimension "type"
            applicationIdSuffix '.typeb'
        }
        typeC {
            dimension "type"
            applicationIdSuffix '.typec'
        }
    }
}

如果您的课程位于同一个套餐中,只要您的应用程序ID不同,您就可以在设备上同时安装多个版本的应用程序。

要构建每个特定的应用,只需在Android Studio中更改所选的变体。

enter image description here

对于代码中的特定flavor实现,您可以使用BuildConfig.FLAVOR来检查当前应用程序的风格。

when (BuildConfig.FLAVOR) {
    "typeA" -> {
        // Do stuff for typeA app
    }
    "typeB" -> ...
    "typeC" -> ...
}