Build Instructions
Welcome to my spaghetti
Put these in local.properties
# // https://www.last.fm/api/account/create
lastfm.key=
lastfm.secret=
# // https://developer.spotify.com/dashboard/
spotify.refreshToken=<base64 encoded client_id:client_secret>
For Android (FOSS):
-
Run
./gradlew androidApp:assembleReleaseGithub -
Info: the FOSS build includes no non-free dependencies.
For Android (Play Store):
-
Create a Firebase project for Crashlytics and add the google-services.json to composeApp/ See https://firebase.google.com/docs/android/setup
-
If you want to generate the optional custom baseline profile for the app, which can improve its startup time, create a file
/baselineprofile/src/main/java/com/arn/scrobble/baselineprofile/Secrets.kt:
object Secrets {
const val type = "lastfm"
const val username = "<lastfmUsername>"
const val sessionKey = "<lastfmSessionKey>"
}
sessionKey can be obtained by logging in to LastFM with a debug build of this app and tapping on the “Copy last.fm session key” in the settings screen.
Then run ./gradlew :baselineprofile:generateBaselineProfile
Currently, the builds skip this step.
-
Run
./gradlew androidApp:assembleRelease -
Info: the Play Store variant includes Google Play billing, Crashlytics (has opt-out) and Google Play Review API as its non-free dependencies
For desktop:
-
Compile the native lib https://github.com/kawaiiDango/pano-native-components
-
If you intend to package a build for desktop, use Bellsoft’s GraalVM based on OpenJDK 25 as your JAVA_HOME and GRAALVM_HOME (both should be set). Also have Inno Setup installed in Program Files on Windows.
-
Run
./gradlew composeApp:exportLibraryDefinitions composeApp:packageUberJarForCurrentOS -PaboutLibraries.exportVariant=desktop -
Info: the desktop build includes no non-free dependencies.