fix: usar apksigner manual para evitar errores de build-tools #4
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |