If you don’t need the unsigned APK at all, then you can simply change the APK filter of the Gradle Runner step to not to include (exclude filters input) the unsigned APK - see: File already exists error
If you do need both to be attached to the build / deployed, but you only want a public install page for the signed on: please use two separate Deploy to Bitrise.io steps, one for the unsigned APK and one for the signed one. Related #how-to : How to deploy only a specific Android APK? (Use multiple deploy steps and set specific path(s) section). This discussion might also help, in case you’d need the public install page of both: Public install page URLs for multiple apps
In my workflow Gradle only generated Released unsigned APK. After that I have a Bitrise Sign APK Step that generates the Signed APK. I think applying a filter wouldn’t help me.
Yes, that won’t, but the other solution, to specify the path in the Deploy to Bitrise.io step (instead of just a directory) certainly does
The Sign APK step exports the signed APK’s path in both BITRISE_SIGNED_APK_PATH and BITRISE_APK_PATH env vars:
So setting the Deploy directory or file path (deploy_path) option of the Deploy to Bitrise.io step to e.g. $BITRISE_SIGNED_APK_PATH should deploy only the signed APK and expose its public install page (similar to what’s described here Public install page URLs for multiple apps).