Skip to content

Commit e23c3e0

Browse files
janodetzelJano Detzel
andauthored
fix(android): use absolute keystore path for android.injected.signing.store.file (#19)
When sign=true, the build failed with: Keystore file '/home/runner/.gradle/daemon/9.0.0/release.keystore' not found for signing config 'externalOverride'. It seems like the action wrote only the filename (e.g. release.keystore) to android.injected.signing.store.file. AGP treats it as a path and resolves relative values from the Gradle daemon directory, so it looked in the wrong place. My Solution: - Run "Create local gradle.properties" after "Decode and store keystore" so KEYSTORE_TARGET_PATH (absolute path) is available. - Set android.injected.signing.store.file=$KEYSTORE_TARGET_PATH instead of the bare filename. AGP's externalOverride then finds the keystore. ROCK_UPLOAD_* and other signing properties are unchanged. Co-authored-by: Jano Detzel <jano.detzel@ewe-go.de>
1 parent 0bbc1b7 commit e23c3e0

1 file changed

Lines changed: 19 additions & 19 deletions

File tree

action.yml

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -182,25 +182,6 @@ runs:
182182
if: ${{ inputs.validate-gradle-wrapper == 'true' && !env.ARTIFACT_URL }}
183183
uses: gradle/actions/wrapper-validation@ac638b010cf58a27ee6c972d7336334ccaf61c96 # v4.4.1
184184

185-
- name: Create local gradle.properties
186-
if: ${{ !env.ARTIFACT_URL && inputs.sign }}
187-
run: |
188-
mkdir -p $HOME/.gradle
189-
touch $HOME/.gradle/gradle.properties
190-
191-
# Android standard properties (auto-recognized by AGP)
192-
echo "android.injected.signing.store.file=${{ inputs.keystore-store-file }}" >> $HOME/.gradle/gradle.properties
193-
echo "android.injected.signing.store.password=${{ inputs.keystore-store-password }}" >> $HOME/.gradle/gradle.properties
194-
echo "android.injected.signing.key.alias=${{ inputs.keystore-key-alias }}" >> $HOME/.gradle/gradle.properties
195-
echo "android.injected.signing.key.password=${{ inputs.keystore-key-password }}" >> $HOME/.gradle/gradle.properties
196-
197-
# Rock custom properties (for apps that explicitly read them in signingConfigs)
198-
echo "ROCK_UPLOAD_STORE_FILE=${{ inputs.keystore-store-file }}" >> $HOME/.gradle/gradle.properties
199-
echo "ROCK_UPLOAD_STORE_PASSWORD=${{ inputs.keystore-store-password }}" >> $HOME/.gradle/gradle.properties
200-
echo "ROCK_UPLOAD_KEY_ALIAS=${{ inputs.keystore-key-alias }}" >> $HOME/.gradle/gradle.properties
201-
echo "ROCK_UPLOAD_KEY_PASSWORD=${{ inputs.keystore-key-password }}" >> $HOME/.gradle/gradle.properties
202-
shell: bash
203-
204185
- name: Determine Android sourceDir and appName
205186
if: ${{ !env.ARTIFACT_URL || (env.ARTIFACT_URL && inputs.re-sign) }}
206187
run: |
@@ -240,6 +221,25 @@ runs:
240221
shell: bash
241222
working-directory: ${{ inputs.working-directory }}
242223

224+
- name: Create local gradle.properties
225+
if: ${{ !env.ARTIFACT_URL && inputs.sign }}
226+
run: |
227+
mkdir -p $HOME/.gradle
228+
touch $HOME/.gradle/gradle.properties
229+
230+
# Android standard properties (auto-recognized by AGP).
231+
echo "android.injected.signing.store.file=$KEYSTORE_TARGET_PATH" >> $HOME/.gradle/gradle.properties
232+
echo "android.injected.signing.store.password=${{ inputs.keystore-store-password }}" >> $HOME/.gradle/gradle.properties
233+
echo "android.injected.signing.key.alias=${{ inputs.keystore-key-alias }}" >> $HOME/.gradle/gradle.properties
234+
echo "android.injected.signing.key.password=${{ inputs.keystore-key-password }}" >> $HOME/.gradle/gradle.properties
235+
236+
# Rock custom properties (for apps that explicitly read them in signingConfigs)
237+
echo "ROCK_UPLOAD_STORE_FILE=${{ inputs.keystore-store-file }}" >> $HOME/.gradle/gradle.properties
238+
echo "ROCK_UPLOAD_STORE_PASSWORD=${{ inputs.keystore-store-password }}" >> $HOME/.gradle/gradle.properties
239+
echo "ROCK_UPLOAD_KEY_ALIAS=${{ inputs.keystore-key-alias }}" >> $HOME/.gradle/gradle.properties
240+
echo "ROCK_UPLOAD_KEY_PASSWORD=${{ inputs.keystore-key-password }}" >> $HOME/.gradle/gradle.properties
241+
shell: bash
242+
243243
- name: Build Android
244244
if: ${{ !env.ARTIFACT_URL }}
245245
run: |

0 commit comments

Comments
 (0)