diff --git a/.gitignore b/.gitignore index db883e965..086c3d65e 100644 --- a/.gitignore +++ b/.gitignore @@ -73,8 +73,12 @@ captures/ .idea/workspace.xml # Keystore files -# Uncomment the following line if you do not want to check your keystore files in. -#*.jks +*.jks # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild + +# Fastlane +Appfile +releasePlayStore/* +Gemfile.lock \ No newline at end of file diff --git a/DEVELOPER.md b/DEVELOPER.md index 7d35839a0..cdfbcecee 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -1,6 +1,6 @@ -# OpenTrack: Developer information +# OpenTracks: Developer information -## Create releases for FDroid +## Craft new releases 1. Get next _version code_ (master branch): `git rev-list HEAD --count master` 2. Decide on _version name_ (semantic versioning) @@ -9,7 +9,27 @@ 5. Create commit with all changes 6. Tag newly create commit with _version name_ (e.g., v3.2.1) 7. Push commits and tags to public repository -8. Add changelog to tag (Github releases) +8. Add changelog to tag (Github releases) + +## F-Droid +Application id: de.dennisguse.opentracks + +It if it properly tagged F-Droid takes care of building the app and publishing. +Usually, it takes two days before the update is published (build, signed, and published). + +The recent build activity can be found [here](https://f-droid.org/wiki/index.php?title=Special:RecentChanges&days=7&from=&hidebots=0&hideanons=1&hideliu=1&limit=500) + +## Google Play Store +Application id: de.dennisguse.opentracks.playstore + +Requirement: `gem install fastlane` + +1. Update store meta data (e.g., description and screenshots) + `fastlane supply --version_code $(git rev-list HEAD --count master) --skip_upload_apk` + (requires API key) +2. Build signed apk + (requires keystore) +3. Upload signed apk to [Google Play Console](https://play.google.com/apps/publish) ## Translations (localization) diff --git a/Gemfile b/Gemfile new file mode 100644 index 000000000..7a118b49b --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source "https://rubygems.org" + +gem "fastlane" diff --git a/build.gradle b/build.gradle index 5548da256..ecafae418 100644 --- a/build.gradle +++ b/build.gradle @@ -74,6 +74,11 @@ android { release { minifyEnabled false } + + releasePlayStore { + applicationIdSuffix ".playstore" + versionNameSuffix "-PlayStore" + } } applicationVariants.all { variant -> diff --git a/fastlane/Fastfile b/fastlane/Fastfile new file mode 100644 index 000000000..19c557cc6 --- /dev/null +++ b/fastlane/Fastfile @@ -0,0 +1,38 @@ +# This file contains the fastlane.tools configuration +# You can find the documentation at https://docs.fastlane.tools +# +# For a list of all available actions, check out +# +# https://docs.fastlane.tools/actions +# +# For a list of all available plugins, check out +# +# https://docs.fastlane.tools/plugins/available-plugins +# + +# Uncomment the line if you want fastlane to automatically update itself +# update_fastlane + +default_platform(:android) + +platform :android do + desc "Runs all the tests" + lane :test do + gradle(task: "test") + end + + desc "Submit a new Beta Build to Crashlytics Beta" + lane :beta do + gradle(task: "clean assembleRelease") + crashlytics + + # sh "your_script.sh" + # You can also use other beta testing services here + end + + desc "Deploy a new version to the Google Play" + lane :deploy do + gradle(task: "clean assembleRelease") + upload_to_play_store + end +end diff --git a/fastlane/metadata/android/en-US/featureGraphic.png b/fastlane/metadata/android/en-US/featureGraphic.png new file mode 100644 index 000000000..3191ed866 Binary files /dev/null and b/fastlane/metadata/android/en-US/featureGraphic.png differ diff --git a/fastlane/metadata/android/en-US/icon.png b/fastlane/metadata/android/en-US/icon.png new file mode 100644 index 000000000..97b2396a0 Binary files /dev/null and b/fastlane/metadata/android/en-US/icon.png differ