gradle-hockeyapp-plugin
A Gradle plugin for uploading iOS and Android Apps to HockeyApp.
Basic usage
Add to your build.gradle
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'de.felixschulze.gradle:gradle-hockeyapp-plugin:3.4'
}
}
apply plugin: 'de.felixschulze.gradle.hockeyapp'
hockeyapp {
apiToken = "YOURHOCKEYAPITOKEN"
}
Advanced usage
Add to your build.gradle
hockeyapp {
apiToken = "YOURHOCKEYAPITOKEN"
releaseType = 2 // alpha
notify = 0
status = 2
notesType = 1
notes = new File(file('../README.md').absolutePath).getText('UTF-8')
variantToApplicationId = [
BuildVariantA: "hockeyAppapplicationIdA",
BuildVariantB: "hockeyAppapplicationIdB",
]
}
Required
apiToken
: Your API Token from HockeyApp
Optional
buildServerUrl
: Optional: the URL of the build job on your build servercommitSha
: Optional: commit SHA for this buildmandatory
:0
not mandatory,1
mandatorymappingFileNameRegex
: Optional:mappingFileNameRegex="mapping.txt"
Should contain the filename or a regex for the proguardmapping.txt
mapping file (Android) ordSYM
file (iOS). Standard ismapping.txt
notes
: Release notes as Textile or MarkdownnotesType
:0
Textile,1
Markdownnotify
:0
not notify testers,1
notify all testers that can install this appreleaseType
:0
beta,1
live,2
alpharepositoryUrl
: Optional: your source repository URLstatus
:1
not allow users to download the version,2
make the version available for downloadtags
: Optional: restrict download to comma-separated list of tagsteamCityLog
:true
Add features for TeamCityteams
: Optional: restrict download to comma-separated list of team IDs; example teams 123, 213 with 123,213 being database ids of your teamsusers
: Optional: restrict download to comma-separated list of user IDs; example: users=1224,5678 with 1224 and 5678 being the database IDs of your usersvariantToApiToken
: Optional:[variantName: "YOURHOCKEYAPITOKEN", variantName2: "YOUROTHERHOCKEYAPITOKEN"]
map between your variants and api tokensvariantToApplicationId
: Optional (Android):[variantName: "hockeyAppAppId", variantName2: "hockeyAppAppId2"]
map between your variants and HockeyApp application IDsvariantToMandatory
: Optional:[variantName: "0", variantName2: "1"]
map between your variants and mandatoryvariantToNotes
: Optional:[variantName: "some notes", variantName2: "some other Notes"]
map between your variants and notesvariantToNotesType
: Optional:[variantName: "0", variantName2: "1"]
map between your variants and notesTypevariantToReleaseType
: Optional:[variantName: "0", variantName2: "1"]
map between your variants and releaseTypevariantToStatus
: Optional:[variantName: "1", variantName2: "2"]
map between your variants and statusvariantToTags
: Optional:[variantName: "1", variantName2: "2"]
map between your variants and tagsvariantToNotify
: Optional:[variantName: "1", variantName2: "2"]
map between your variants and notify
iOS or custom Android build only options
appFileNameRegex
: Only needed for iOS or if you don't use the android gradle plugin `appFileNameRegex = ".*.ipa"outputDirectory
: Only needed for iOS:file("directory")
symbolsDirectory
: Only needed for iOS or if you don't use the android gradle plugin:file("directory")
Directory which contains theR
ordSYM
file
Migration from 2.x to >= 3.0
To migrate to version >= 3.0 please change
apply plugin: 'hockeyApp'
to
apply plugin: 'de.felixschulze.gradle.hockeyapp'
Changelog
Fix for Error with Top-Level-Projects / Multi project environment
If you use a top-level-project or multi project environment and got the error java.lang.NoSuchFieldError: INSTANCE
or Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory
move the dependency to this plugin to your root build.gradle
file (see #30, #62)
License
gradle-hockeyapp-plugin is available under the MIT license. See the LICENSE file for more info.