让我们想象以下情况: 我正在为汽车制造应用程序,比如大众汽车。现在Skoda(属于同一组)想要相同的应用程序,但需要不同的资源文件,并且需要对代码进行一些检查。如果是大众,请调用此Web服务,否则如果是斯柯达,请调用另一个。
我无法回答这个问题:“它是同一个应用程序吗?” 从代码的角度来看是的,但从Play商店的角度来看没有...
如何设置相同的代码库,但有两个不同的包名?
我认为我正在阅读这篇https://stackoverflow.com/a/35060150/5089204,但如果你有任何技巧,建议或帮助分享我会很高兴听到:) 我知道这个问题已被提出,但我正在寻找一个有gradle& amp;的解决方案。 Android Studio。
的Tx
答案 0 :(得分:1)
您好,您可以使用产品风格来定义每个新应用程序的软件包名称,如@stoke所述
productFlavors {
app1 {
applicationId "com.example.package.app1"
buildConfigField "String", "API_URL", "\"https://www.myapi.com/apiv1/\""
}
app2 {
applicationId "com.example.package.app2"
buildConfigField "String", "API_URL","\"https://www.myapi.com/apiv2/\""
}
}
为了在构建中定义不同的端点或URL,您可以定义要在代码中使用的构建变量。
然后您可以在java代码中像BuildConfig.API_URL一样访问它们。
对于不同风格的不同资源,您需要定义与新风味名称匹配的2个目录。
检查this以查找文件结构和资源。
答案 1 :(得分:0)
googles的Play商店使用的应用程序的ID在Build.gradle文件中定义: 喜欢
productFlavors {
vw {
applicationId = "com.example.my.pkg.vw"
}
skoda {
applicationId = "com.example.my.pkg.skoda"
}
只需要在新flavor的自动生成文件夹下创建ressources文件夹。有关详细信息,请参阅http://www.vogella.com/tutorials/AndroidStudioTooling/article.html#androidstudio_creatingresourcefolder