Сгенерируйте СЛУЧАЙНЫЙ идентификатор приложения и имя пакета с помощью Gradle Android build - PullRequest
0 голосов
/ 16 января 2020

Я бы хотел, чтобы Gradle заменял переменные applicationId и package случайной строкой во время сборки. Вот что я пробовал:

// build.gradle (project)
class Scrambler {
    Random random = new Random()

    String getRandomString(int i) {
        return random.with {(1..(6 + random.nextInt(i))).collect {(('a'..'z')).join()[ nextInt((('a'..'z')).join().length())]}.join()}
    }
}

Scrambler scrambler = new Scrambler()

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.${scrambler.getRandomString(2)}.${scrambler.getRandomString(2)}"
        // com.ohukcgn.vpybhkh (example)
        ...

На этом этапе все java классы все еще привязаны к исходному имени пакета:

com.ohukcgn.vpybhkh/com.original.name.MainActivity // example

И это git, потому что я не изменил путь для них.

Но теперь, что я должен сделать для полного рефакторинга?

com.ohukcgn.vpybhkh/com.ohukcgn.vpybhkh.MainActivity // goal

Я мог бы сделать сценарий для этого (который переименовал бы каталоги и так на ...), но я не уверен, что это будет правильно.

...