首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何动态改变applicationID

如何动态改变applicationID
EN

Stack Overflow用户
提问于 2016-09-08 14:22:51
回答 2查看 2.1K关注 0票数 1

我试图通过将原始id与GIT分支的分支名称附加在一起来更改我的applicationId。脚本renameID.sh执行重命名applicationID的工作。

虽然我可以在运行生成时成功地重命名ApplicationID,但我希望在生成后恢复applicationID。

脚本restoreID是将applicationID还原为原始名称,但似乎不起作用。

有人能指出我做错了什么,或者提出更好的方法来完成我的客观任务吗?

代码语言:javascript
复制
apply plugin: 'com.android.application'

class Config{
    String name
}

task renameAppId(type:org.gradle.api.tasks.Exec) {
    commandLine 'sh', 'renameID.sh'

}

preBuild.dependsOn renameAppId
task finaltask(type:org.gradle.api.tasks.Exec){
    commandLine 'sh', 'restoreID.sh'

}

build.finalizedBy(finaltask)


android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "com.abc.xyz"
        minSdkVersion 16
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:24.0.0'
    compile 'com.android.support:recyclerview-v7:+'
    compile 'com.android.support:cardview-v7:+'
    compile 'com.android.support:support-v4:24.0.0'
    compile 'de.hdodenhof:circleimageview:1.3.0'
    compile 'com.android.volley:volley:1.0.0'
    compile 'com.android.support:design:22.2.1'
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-08 17:05:52

有一个applicationIdSuffix函数可以应用于您的buildType。就像这样

代码语言:javascript
复制
buildTypes {
    debug {
        applicationIdSuffix branch_name
    }
}

此外,您还可以通过这种方式获得当前的分支名称。

代码语言:javascript
复制
    def branch_name = ""
    try {
        branch_name = "git rev-parse --abbrev-ref HEAD".execute().text.trim();
    } catch (ignored) {
        println "Git not found"
    }
票数 4
EN

Stack Overflow用户

发布于 2016-09-08 14:50:54

我认为你可以用产品的味道来达到你的目标。在你的应用程序build.gradle中,在android下,你可以添加如下的味道

代码语言:javascript
复制
productFlavors {

    full {
        applicationId "com.mycomp.myapp"
    }

    gitBranch {
        applicationId "com.mycomp.myapp.git_branch"
    }
}

然后,现在从applicationId中删除defaultConfig,当您构建时,您可以选择由android左下角的面板使用哪种构建变体(builtype +风味)。在这种情况下,它们应该是debugFull、debugGitBranch、releaseFull和releaseGitBranch。您最终的apk将有相应的applicationId与您在使用过的味道中插入的那个。

希望这能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39393477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档