Используйте переменные в манифесте - PullRequest
2 голосов
/ 23 сентября 2019

Для интеграции некоторых библиотек, таких как Branch-io, в Android необходимо определить метаданные в манифесте проекта.часть этой переменной имеет вид TestMode

    <meta-data android:name="io.branch.sdk.TestMode" android:value="true" />

Итак, когда мы хотим опубликовать приложение, мы должны изменить его на False.

Можно ли где-нибудь определить переменную в соответствии с BuildType и присвоить ее метаданным для этого?

Ответы [ 2 ]

1 голос
/ 23 сентября 2019

Вы можете сделать это, добавив manifestPlaceholder к вашему build.gradle файлу:

android {
    ...
    buildTypes {
        debug {
            manifestPlaceholders = [isBranchSdkInTestMode:"true"]
            ...
        }
        release {
            manifestPlaceholders = [isBranchSdkInTestMode:"false"]
            ...
        }
    }
    ...
}

В AndroidManifest.xml , выможно использовать как ${isBranchSdkInTestMode}:

<meta-data android:name="io.branch.sdk.TestMode" android:value="${isBranchSdkInTestMode}" />
1 голос
/ 23 сентября 2019

Да, вы можете внедрить переменные сборки из gradle в манифест, это делается путем добавления переменной в build.gradle:

android {
    defaultConfig {
        manifestPlaceholders = [hostName:"www.example.com"]
    }
    deployConfg {
        manifestPlaceholders = [hostName:"www.prod-server.com"]
    }
    ...
}

И затем в вашем манифесте вы можете получить ее:

<intent-filter ... >
    <data android:scheme="http" android:host="${hostName}" ... />
    ...
</intent-filter>

Вы можете узнать больше о том, как это работает здесь .

...