На самом деле Crashlytics позволяет иметь несколько версий APK.Каждая версия может иметь собственную строку версии и, конечно, заметки о выпуске , чтобы помочь QA найти правильный APK.
Точка 3 из вопроса может быть описана таким образом: CI настроен для загрузки сборкик Crashlytics.Это может быть достигнуто с помощью задачи gradle:
gradle assembleRelease crashlyticsUploadDistributionRelease
Действительно полезно иметь специальный тип сборки (pullrequest
) для этого случая.Вы можете указать специальные правила распространения через группы рассылки, уведомления о сборках и заметки о выпуске.
build.gradle:
//example function for change log
def getLastGitCommitMessage() {
try {
"git log -1 --pretty=%B".execute().text.trim()
} catch (e) {
'Undefined message.'
}
}
android {
buildTypes {
...
pullrequest {
//invitation
ext.betaDistributionGroupAliases = "QA, devs"
// notification
ext.betaDistributionNotifications = true
// last commit message as release notes
ext.betaDistributionReleaseNotes = getLastGitCommitMessage()
}
}
}
В этом случае команда построения и загрузки будет такой:
gradle assemblePullrequest crashlyticsUploadDistributionPullrequest