feat: support for empty app name and android.injected.signing properties#12
feat: support for empty app name and android.injected.signing properties#12
Conversation
rinej
commented
Oct 15, 2025
- add support for empty app name
- add support for android standard signing properties
action.yml
Outdated
| echo "android.injected.signing.key.password=${{ inputs.keystore-key-password }}" >> $HOME/.gradle/gradle.properties | ||
|
|
||
| # Rock custom properties (for apps that explicitly read them in signingConfigs) | ||
| echo "ROCK__UPLOAD_STORE_FILE=${{ inputs.keystore-store-file }}" >> $HOME/.gradle/gradle.properties |
There was a problem hiding this comment.
| echo "ROCK__UPLOAD_STORE_FILE=${{ inputs.keystore-store-file }}" >> $HOME/.gradle/gradle.properties | |
| echo "ROCK_UPLOAD_STORE_FILE=${{ inputs.keystore-store-file }}" >> $HOME/.gradle/gradle.properties |
| keyPassword project.findProperty('RNEF_UPLOAD_KEY_PASSWORD') ?: 'placeholder' | ||
| } | ||
| } | ||
| ``` |
There was a problem hiding this comment.
let's add mapping:
- RNEF_UPLOAD_KEY_ALIAS -> populated by
inputs.keystore-key-alias - ...
README.md
Outdated
|
|
||
| When `sign: true` is enabled, this action configures Android code signing by setting Gradle properties. It supports **two property conventions** for maximum compatibility: | ||
|
|
||
| ### Standard Android Properties |
There was a problem hiding this comment.
is this named "standard properties" anywhere? I'd rather name it "Android injected properties" and mention this is an undocumented feature used by Fastlane and AGP or something
There was a problem hiding this comment.
sure, Android injected properties sounds better ;)
| echo "Keystore target path before normalizing: $KEYSTORE_TARGET_PATH" | ||
| while [[ "$KEYSTORE_TARGET_PATH" == *"/../"* ]]; do | ||
| KEYSTORE_TARGET_PATH=$(echo "$KEYSTORE_TARGET_PATH" | sed 's|/[^/][^/]*/\.\./|/|') | ||
| done | ||
| echo "Keystore target path after normalizing: $KEYSTORE_TARGET_PATH" |
There was a problem hiding this comment.
what's this about, why do we need normalization like this? seems quite brittle
There was a problem hiding this comment.
We have to set the path like that in the params:
keystore-path: '../tools/buildtools/upload-key.keystore'
Without normalization we ended up having:
/home/runner/work/App/App/Mobile-Expensify/Android/../tools/buildtools/upload-key.keystore
which caused error when copying
With normalization we have proper path:
/home/runner/work/App/App/Mobile-Expensify/tools/buildtools/upload-key.keystore
There was a problem hiding this comment.
ok, can we use realpath then to get the absolute path instead of regex?
|
Hey @rinej I stumbled upon a problem with the android.injected.signing properties using the rock-cli template project. AGP resolves
That file does not exist. The real keystore is at e.g.:
Could you have a look at #20? |