Skip to content

fix: usar apksigner manual para evitar errores de build-tools #4

fix: usar apksigner manual para evitar errores de build-tools

fix: usar apksigner manual para evitar errores de build-tools #4

Workflow file for this run

name: Create Signed Release APK
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build Release APK
run: ./gradlew assembleRelease
- name: Sign APK (Manual Strategy)
run: |
# 1. Recuperar la llave desde el secreto Base64
echo "${{ secrets.SIGNING_KEY }}" | base64 -d > release.jks
# 2. Detectar herramientas de construcción modernas
BUILD_TOOL_VERSION=$(ls $ANDROID_SDK_ROOT/build-tools/ | tail -n 1)
APKSIGNER=$ANDROID_SDK_ROOT/build-tools/$BUILD_TOOL_VERSION/apksigner
# 3. Firmar la APK
# Buscamos la APK generada (suele ser app-release-unsigned.apk o app-release.apk)
SOURCE_APK=$(find app/build/outputs/apk/release/ -name "*.apk" | head -n 1)
$APKSIGNER sign --ks release.jks \
--ks-key-alias "${{ secrets.ALIAS }}" \
--ks-pass pass:"${{ secrets.KEY_STORE_PASSWORD }}" \
--key-pass pass:"${{ secrets.KEY_PASSWORD }}" \
--out app/build/outputs/apk/release/TapTranslate-v${{ github.ref_name }}-signed.apk \
$SOURCE_APK
# 4. Verificar la firma para total seguridad
$APKSIGNER verify app/build/outputs/apk/release/TapTranslate-v${{ github.ref_name }}-signed.apk
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
files: app/build/outputs/apk/release/TapTranslate-v${{ github.ref_name }}-signed.apk
name: TapTranslate v${{ github.ref_name }}
tag_name: ${{ github.ref }}
body: |
## TapTranslate ${{ github.ref_name }} (Versión Firmada)
Esta es la versión oficial firmada de TapTranslate.
### Instalación
1. Descarga el archivo `.apk` adjunto.
2. Si Android te avisa sobre su procedencia, pulsa en "Instalar de todas formas" (ya que no viene de Google Play).
### Novedades
- Arquitectura MVVM completa.
- Traducción On-Device NMT.
- Icono adaptativo profesional.
- Soporte bilingüe ES/EN.
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}