2016-09-08 56 views
0

我試圖通過將原始ID附加到GIT分支的分支名稱來更改我的applicationId。腳本renameID.sh完成重命名applicationID的工作。如何動態更改應用程序ID

儘管我可以在運行構建時成功重命名ApplicationID,但我希望在構建後還原應用程序ID。

腳本restoreID是將applicationID還原爲原始名稱,但似乎不起作用。

有人可以指出我做錯了什麼或建議一些更好的方式來執行我的目標任務嗎?

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' 
} 
+0

你可以用味道來使用不同的應用程序ID或者沒有滿足你的需要獲得當前分支的名字嗎? – firegloves

回答

1

有,你可以應用到你的buildType的applicationIdSuffix功能。事情是這樣的

buildTypes { 
    debug { 
     applicationIdSuffix branch_name 
    } 
} 

此外,您可以通過這種方式

def branch_name = "" 
    try { 
     branch_name = "git rev-parse --abbrev-ref HEAD".execute().text.trim(); 
    } catch (ignored) { 
     println "Git not found" 
    } 
0

我認爲你可以使用產品的風格來實現你的目標。在您的應用程序的build.gradle,在機器人,你可以添加一些香精這樣

productFlavors { 

    full { 
     applicationId "com.mycomp.myapp" 
    } 

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

然後從defaultConfig 刪除的applicationID現在,當你建立,你可以選擇哪個構建變種(builtype +味)被使用面板在android studio的左下角。在這種情況下,它們應該是debugFull,debugGitBranch,releaseFull和releaseGitBranch。您最終的apk將相應地使用您已插入使用風格的應用程序ID。

希望這有助於

相關問題