mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-04 07:13:28 +01:00 
			
		
		
		
	Merge pull request #1940 from ImranR98/dev
Translation fix, Flutter/package updates, GitHub action security improvement
This commit is contained in:
		
							
								
								
									
										2
									
								
								.flutter
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								.flutter
									
									
									
									
									
								
							 Submodule .flutter updated: 2663184aa7...603104015d
									
								
							
							
								
								
									
										36
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							@@ -6,9 +6,6 @@ on:
 | 
				
			|||||||
      beta:
 | 
					      beta:
 | 
				
			||||||
        type: boolean
 | 
					        type: boolean
 | 
				
			||||||
        description: Is beta?
 | 
					        description: Is beta?
 | 
				
			||||||
      draft:
 | 
					 | 
				
			||||||
        type: boolean
 | 
					 | 
				
			||||||
        description: Is draft?
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  build:
 | 
					  build:
 | 
				
			||||||
@@ -28,13 +25,6 @@ jobs:
 | 
				
			|||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
          flutter doctor -v
 | 
					          flutter doctor -v
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Import GPG key
 | 
					 | 
				
			||||||
        id: import_pgp_key
 | 
					 | 
				
			||||||
        uses: crazy-max/ghaction-import-gpg@v6
 | 
					 | 
				
			||||||
        with:
 | 
					 | 
				
			||||||
          gpg_private_key: ${{ secrets.PGP_KEY_BASE64 }}
 | 
					 | 
				
			||||||
          passphrase: ${{ secrets.PGP_PASSPHRASE }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      - name: Check submodule
 | 
					      - name: Check submodule
 | 
				
			||||||
        id: check_submodule
 | 
					        id: check_submodule
 | 
				
			||||||
        run: |
 | 
					        run: |
 | 
				
			||||||
@@ -57,24 +47,13 @@ jobs:
 | 
				
			|||||||
          for file in build/app/outputs/flutter-apk/app-*normal*.apk*; do mv "$file" "${file//-normal/}"; done
 | 
					          for file in build/app/outputs/flutter-apk/app-*normal*.apk*; do mv "$file" "${file//-normal/}"; done
 | 
				
			||||||
          flutter build apk --flavor fdroid -t lib/main_fdroid.dart && flutter build apk --split-per-abi --flavor fdroid -t lib/main_fdroid.dart
 | 
					          flutter build apk --flavor fdroid -t lib/main_fdroid.dart && flutter build apk --split-per-abi --flavor fdroid -t lib/main_fdroid.dart
 | 
				
			||||||
          rm ./build/app/outputs/flutter-apk/*.sha1
 | 
					          rm ./build/app/outputs/flutter-apk/*.sha1
 | 
				
			||||||
 | 
					          cp ./sign.sh ./build/app/outputs/flutter-apk/
 | 
				
			||||||
          ls -l ./build/app/outputs/flutter-apk/
 | 
					          ls -l ./build/app/outputs/flutter-apk/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Sign APKs
 | 
					      - name: Save Unsigned APKs as Action Artifacts
 | 
				
			||||||
        env:
 | 
					        uses: actions/upload-artifact@v4
 | 
				
			||||||
          KEYSTORE_BASE64: ${{ secrets.KEYSTORE_BASE64 }}
 | 
					        with:
 | 
				
			||||||
          KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
 | 
					          path: build/app/outputs/flutter-apk/*
 | 
				
			||||||
          PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }}
 | 
					 | 
				
			||||||
        run: |
 | 
					 | 
				
			||||||
          echo "${KEYSTORE_BASE64}" | base64 -d > apksign.keystore
 | 
					 | 
				
			||||||
          for apk in ./build/app/outputs/flutter-apk/*-release*.apk; do
 | 
					 | 
				
			||||||
            unsignedFn=${apk/-release/-unsigned}
 | 
					 | 
				
			||||||
            mv "$apk" "$unsignedFn"
 | 
					 | 
				
			||||||
            ${ANDROID_HOME}/build-tools/$(ls ${ANDROID_HOME}/build-tools/ | tail -1)/apksigner sign --ks apksign.keystore --ks-pass pass:"${KEYSTORE_PASSWORD}" --out "${apk}" "${unsignedFn}"
 | 
					 | 
				
			||||||
            sha256sum ${apk} | cut -d " " -f 1 > "$apk".sha256
 | 
					 | 
				
			||||||
            gpg --batch  --pinentry-mode loopback --passphrase "${PGP_PASSPHRASE}" --sign --detach-sig "$apk".sha256
 | 
					 | 
				
			||||||
          done
 | 
					 | 
				
			||||||
          rm apksign.keystore
 | 
					 | 
				
			||||||
          PGP_KEY_FINGERPRINT="${{ steps.import_pgp_key.outputs.fingerprint }}"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - name: Create Tag
 | 
					      - name: Create Tag
 | 
				
			||||||
        uses: mathieudutour/github-tag-action@v6.1
 | 
					        uses: mathieudutour/github-tag-action@v6.1
 | 
				
			||||||
@@ -83,12 +62,11 @@ jobs:
 | 
				
			|||||||
          custom_tag: "${{ steps.extract_version.outputs.tag }}"
 | 
					          custom_tag: "${{ steps.extract_version.outputs.tag }}"
 | 
				
			||||||
          tag_prefix: ""
 | 
					          tag_prefix: ""
 | 
				
			||||||
      
 | 
					      
 | 
				
			||||||
      - name: Create Release And Upload APKs
 | 
					      - name: Create Draft Release
 | 
				
			||||||
        uses: ncipollo/release-action@v1
 | 
					        uses: ncipollo/release-action@v1
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
          token: ${{ secrets.GH_ACCESS_TOKEN }}
 | 
					          token: ${{ secrets.GH_ACCESS_TOKEN }}
 | 
				
			||||||
          tag: "${{ steps.extract_version.outputs.tag }}"
 | 
					          tag: "${{ steps.extract_version.outputs.tag }}"
 | 
				
			||||||
          prerelease: "${{ steps.extract_version.outputs.beta }}"
 | 
					          prerelease: "${{ steps.extract_version.outputs.beta }}"
 | 
				
			||||||
          draft: "${{ inputs.draft }}"
 | 
					          draft: "true"
 | 
				
			||||||
          artifacts: ./build/app/outputs/flutter-apk/*-release*.apk*
 | 
					 | 
				
			||||||
          generateReleaseNotes: true
 | 
					          generateReleaseNotes: true
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										71
									
								
								.github/workflows/temp.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										71
									
								
								.github/workflows/temp.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,71 +0,0 @@
 | 
				
			|||||||
name: Playing around (temp)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
on:
 | 
					 | 
				
			||||||
  workflow_dispatch:
 | 
					 | 
				
			||||||
    inputs:
 | 
					 | 
				
			||||||
      beta:
 | 
					 | 
				
			||||||
        type: boolean
 | 
					 | 
				
			||||||
        description: Is beta?
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
jobs:
 | 
					 | 
				
			||||||
  build:
 | 
					 | 
				
			||||||
    runs-on: ubuntu-latest
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    steps:
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      - uses: actions/checkout@v3
 | 
					 | 
				
			||||||
      - uses: subosito/flutter-action@v2
 | 
					 | 
				
			||||||
      - uses: actions/setup-java@v4
 | 
					 | 
				
			||||||
        with:
 | 
					 | 
				
			||||||
          distribution: 'temurin' # See 'Supported distributions' for available options
 | 
					 | 
				
			||||||
          java-version: '17'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      - name: Flutter Doctor
 | 
					 | 
				
			||||||
        id: flutter_doctor
 | 
					 | 
				
			||||||
        run: |
 | 
					 | 
				
			||||||
          flutter doctor -v
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      - name: Check submodule
 | 
					 | 
				
			||||||
        id: check_submodule
 | 
					 | 
				
			||||||
        run: |
 | 
					 | 
				
			||||||
          git checkout ${{ inputs.checkout }}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      - name: Extract Version
 | 
					 | 
				
			||||||
        id: extract_version      
 | 
					 | 
				
			||||||
        run: |
 | 
					 | 
				
			||||||
          VERSION=$(grep -oP "^version: [^\+]+" pubspec.yaml | tail -c +10)
 | 
					 | 
				
			||||||
          echo "version=$VERSION" >> $GITHUB_OUTPUT
 | 
					 | 
				
			||||||
          if [ ${{ inputs.beta }} == true ]; then BETA=true; else BETA=false; fi
 | 
					 | 
				
			||||||
          echo "beta=$BETA" >> $GITHUB_OUTPUT
 | 
					 | 
				
			||||||
          TAG="v$VERSION"
 | 
					 | 
				
			||||||
          echo "tag=$TAG" >> $GITHUB_OUTPUT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      - name: Build APKs
 | 
					 | 
				
			||||||
        run: |
 | 
					 | 
				
			||||||
          sed -i 's/signingConfig signingConfigs.release//g' android/app/build.gradle
 | 
					 | 
				
			||||||
          flutter build apk --flavor normal && flutter build apk --split-per-abi --flavor normal
 | 
					 | 
				
			||||||
          for file in build/app/outputs/flutter-apk/app-*normal*.apk*; do mv "$file" "${file//-normal/}"; done
 | 
					 | 
				
			||||||
          flutter build apk --flavor fdroid -t lib/main_fdroid.dart && flutter build apk --split-per-abi --flavor fdroid -t lib/main_fdroid.dart
 | 
					 | 
				
			||||||
          rm ./build/app/outputs/flutter-apk/*.sha1
 | 
					 | 
				
			||||||
          ls -l ./build/app/outputs/flutter-apk/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      - name: Save Unsigned APKs as Action Artifacts
 | 
					 | 
				
			||||||
        uses: actions/upload-artifact@v4
 | 
					 | 
				
			||||||
        with:
 | 
					 | 
				
			||||||
          path: build/app/outputs/flutter-apk/*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      #- name: Create Tag
 | 
					 | 
				
			||||||
      #  uses: mathieudutour/github-tag-action@v6.1
 | 
					 | 
				
			||||||
      #  with:
 | 
					 | 
				
			||||||
      #    github_token: ${{ secrets.GH_ACCESS_TOKEN }}
 | 
					 | 
				
			||||||
      #    custom_tag: "${{ steps.extract_version.outputs.tag }}"
 | 
					 | 
				
			||||||
      #    tag_prefix: ""
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
      #- name: Create Draft Release
 | 
					 | 
				
			||||||
      #  uses: ncipollo/release-action@v1
 | 
					 | 
				
			||||||
      #  with:
 | 
					 | 
				
			||||||
      #    token: ${{ secrets.GH_ACCESS_TOKEN }}
 | 
					 | 
				
			||||||
      #    tag: "${{ steps.extract_version.outputs.tag }}"
 | 
					 | 
				
			||||||
      #    prerelease: "${{ steps.extract_version.outputs.beta }}"
 | 
					 | 
				
			||||||
      #    draft: "true"
 | 
					 | 
				
			||||||
      #    generateReleaseNotes: true
 | 
					 | 
				
			||||||
@@ -22,6 +22,9 @@
 | 
				
			|||||||
    "requiredInBrackets": "(Wymagane)",
 | 
					    "requiredInBrackets": "(Wymagane)",
 | 
				
			||||||
    "dropdownNoOptsError": "BŁĄD: LISTA ROZWIJANA MUSI MIEĆ CO NAJMNIEJ JEDNĄ OPCJĘ",
 | 
					    "dropdownNoOptsError": "BŁĄD: LISTA ROZWIJANA MUSI MIEĆ CO NAJMNIEJ JEDNĄ OPCJĘ",
 | 
				
			||||||
    "colour": "Kolor",
 | 
					    "colour": "Kolor",
 | 
				
			||||||
 | 
					    "standard": "Domyślny",
 | 
				
			||||||
 | 
					    "custom": "Własny",
 | 
				
			||||||
 | 
					    "useMaterialYou": "Material You",
 | 
				
			||||||
    "githubStarredRepos": "Repozytoria GitHub oznaczone gwiazdką",
 | 
					    "githubStarredRepos": "Repozytoria GitHub oznaczone gwiazdką",
 | 
				
			||||||
    "uname": "Nazwa użytkownika",
 | 
					    "uname": "Nazwa użytkownika",
 | 
				
			||||||
    "wrongArgNum": "Nieprawidłowa liczba podanych argumentów",
 | 
					    "wrongArgNum": "Nieprawidłowa liczba podanych argumentów",
 | 
				
			||||||
@@ -51,9 +54,8 @@
 | 
				
			|||||||
    "percentProgress": "Postęp: {}%",
 | 
					    "percentProgress": "Postęp: {}%",
 | 
				
			||||||
    "pleaseWait": "Proszę czekać",
 | 
					    "pleaseWait": "Proszę czekać",
 | 
				
			||||||
    "updateAvailable": "Dostępna aktualizacja",
 | 
					    "updateAvailable": "Dostępna aktualizacja",
 | 
				
			||||||
    "estimateInBracketsShort": "(Szac.)",
 | 
					 | 
				
			||||||
    "notInstalled": "Nie zainstalowano",
 | 
					    "notInstalled": "Nie zainstalowano",
 | 
				
			||||||
    "estimateInBrackets": "(Szacunkowo)",
 | 
					    "pseudoVersion": "pseudo-wersja",
 | 
				
			||||||
    "selectAll": "Zaznacz wszystkie",
 | 
					    "selectAll": "Zaznacz wszystkie",
 | 
				
			||||||
    "deselectX": "Odznacz {}",
 | 
					    "deselectX": "Odznacz {}",
 | 
				
			||||||
    "xWillBeRemovedButRemainInstalled": "{} zostanie usunięty z Obtainium, ale pozostanie zainstalowany na urządzeniu.",
 | 
					    "xWillBeRemovedButRemainInstalled": "{} zostanie usunięty z Obtainium, ale pozostanie zainstalowany na urządzeniu.",
 | 
				
			||||||
@@ -73,13 +75,14 @@
 | 
				
			|||||||
    "unpinFromTop": "Odepnij",
 | 
					    "unpinFromTop": "Odepnij",
 | 
				
			||||||
    "resetInstallStatusForSelectedAppsQuestion": "Zresetować status instalacji dla wybranych aplikacji?",
 | 
					    "resetInstallStatusForSelectedAppsQuestion": "Zresetować status instalacji dla wybranych aplikacji?",
 | 
				
			||||||
    "installStatusOfXWillBeResetExplanation": "Stan instalacji wybranych aplikacji zostanie zresetowany.\n\nMoże być to pomocne, gdy wersja aplikacji wyświetlana w Obtainium jest nieprawidłowa z powodu nieudanych aktualizacji lub innych problemów.",
 | 
					    "installStatusOfXWillBeResetExplanation": "Stan instalacji wybranych aplikacji zostanie zresetowany.\n\nMoże być to pomocne, gdy wersja aplikacji wyświetlana w Obtainium jest nieprawidłowa z powodu nieudanych aktualizacji lub innych problemów.",
 | 
				
			||||||
 | 
					    "customLinkMessage": "Te linki działają na urządzeniach z zainstalowanym Obtainium",
 | 
				
			||||||
 | 
					    "shareAppConfigLinks": "Udostępnij konfigurację aplikacji w formie linku",
 | 
				
			||||||
    "shareSelectedAppURLs": "Udostępnij wybrane adresy URL aplikacji",
 | 
					    "shareSelectedAppURLs": "Udostępnij wybrane adresy URL aplikacji",
 | 
				
			||||||
    "resetInstallStatus": "Zresetuj stan instalacji",
 | 
					    "resetInstallStatus": "Zresetuj stan instalacji",
 | 
				
			||||||
    "more": "Więcej",
 | 
					    "more": "Więcej",
 | 
				
			||||||
    "removeOutdatedFilter": "Usuń filtr nieaktualnych aplikacji",
 | 
					    "removeOutdatedFilter": "Usuń filtr nieaktualnych aplikacji",
 | 
				
			||||||
    "showOutdatedOnly": "Pokaż tylko nieaktualne aplikacje",
 | 
					    "showOutdatedOnly": "Pokaż tylko nieaktualne aplikacje",
 | 
				
			||||||
    "filter": "FIltr",
 | 
					    "filter": "FIltr",
 | 
				
			||||||
    "filterActive": "Filtruj *",
 | 
					 | 
				
			||||||
    "filterApps": "Filtruj aplikacje",
 | 
					    "filterApps": "Filtruj aplikacje",
 | 
				
			||||||
    "appName": "Nazwa aplikacji",
 | 
					    "appName": "Nazwa aplikacji",
 | 
				
			||||||
    "author": "Autor",
 | 
					    "author": "Autor",
 | 
				
			||||||
@@ -103,7 +106,6 @@
 | 
				
			|||||||
    "importErrors": "Błędy importowania",
 | 
					    "importErrors": "Błędy importowania",
 | 
				
			||||||
    "importedXOfYApps": "Zaimportowano {} z {} aplikacji.",
 | 
					    "importedXOfYApps": "Zaimportowano {} z {} aplikacji.",
 | 
				
			||||||
    "followingURLsHadErrors": "Następujące adresy URL zawierały błędy:",
 | 
					    "followingURLsHadErrors": "Następujące adresy URL zawierały błędy:",
 | 
				
			||||||
    "okay": "Okej",
 | 
					 | 
				
			||||||
    "selectURL": "Wybierz adres URL",
 | 
					    "selectURL": "Wybierz adres URL",
 | 
				
			||||||
    "selectURLs": "Wybierz adresy URL",
 | 
					    "selectURLs": "Wybierz adresy URL",
 | 
				
			||||||
    "pick": "Wybierz",
 | 
					    "pick": "Wybierz",
 | 
				
			||||||
@@ -111,8 +113,7 @@
 | 
				
			|||||||
    "dark": "Ciemny",
 | 
					    "dark": "Ciemny",
 | 
				
			||||||
    "light": "Jasny",
 | 
					    "light": "Jasny",
 | 
				
			||||||
    "followSystem": "Zgodny z systemem",
 | 
					    "followSystem": "Zgodny z systemem",
 | 
				
			||||||
    "obtainium": "Obtainium",
 | 
					    "followSystemThemeExplanation": "Podążanie za motywem systemowym jest możliwe tylko przy użyciu aplikacji firm trzecich",
 | 
				
			||||||
    "materialYou": "Material You",
 | 
					 | 
				
			||||||
    "useBlackTheme": "Użyj czarnego motywu",
 | 
					    "useBlackTheme": "Użyj czarnego motywu",
 | 
				
			||||||
    "appSortBy": "Sortuj aplikacje według",
 | 
					    "appSortBy": "Sortuj aplikacje według",
 | 
				
			||||||
    "authorName": "Autor/Nazwa",
 | 
					    "authorName": "Autor/Nazwa",
 | 
				
			||||||
@@ -146,8 +147,10 @@
 | 
				
			|||||||
    "noNewUpdates": "Brak nowych aktualizacji.",
 | 
					    "noNewUpdates": "Brak nowych aktualizacji.",
 | 
				
			||||||
    "xHasAnUpdate": "{} ma aktualizację.",
 | 
					    "xHasAnUpdate": "{} ma aktualizację.",
 | 
				
			||||||
    "appsUpdated": "Zaktualizowano aplikacje",
 | 
					    "appsUpdated": "Zaktualizowano aplikacje",
 | 
				
			||||||
 | 
					    "appsNotUpdated": "Nie udało się zaktualizować aplikacji",
 | 
				
			||||||
    "appsUpdatedNotifDescription": "Informuje, gdy co najmniej jedna aplikacja została zaktualizowana w tle",
 | 
					    "appsUpdatedNotifDescription": "Informuje, gdy co najmniej jedna aplikacja została zaktualizowana w tle",
 | 
				
			||||||
    "xWasUpdatedToY": "{} zaktualizowano do {}.",
 | 
					    "xWasUpdatedToY": "{} zaktualizowano do {}.",
 | 
				
			||||||
 | 
					    "xWasNotUpdatedToY": "Błąd aktualizacji {} do {}.",
 | 
				
			||||||
    "errorCheckingUpdates": "Błąd sprawdzania aktualizacji",
 | 
					    "errorCheckingUpdates": "Błąd sprawdzania aktualizacji",
 | 
				
			||||||
    "errorCheckingUpdatesNotifDescription": "Jest wyświetlane, gdy sprawdzanie aktualizacji w tle nie powiedzie się",
 | 
					    "errorCheckingUpdatesNotifDescription": "Jest wyświetlane, gdy sprawdzanie aktualizacji w tle nie powiedzie się",
 | 
				
			||||||
    "appsRemoved": "Usunięte aplikacje",
 | 
					    "appsRemoved": "Usunięte aplikacje",
 | 
				
			||||||
@@ -176,7 +179,6 @@
 | 
				
			|||||||
    "appWithIdOrNameNotFound": "Nie znaleziono aplikacji o tym identyfikatorze lub nazwie",
 | 
					    "appWithIdOrNameNotFound": "Nie znaleziono aplikacji o tym identyfikatorze lub nazwie",
 | 
				
			||||||
    "reposHaveMultipleApps": "Repozytoria mogą zawierać wiele aplikacji",
 | 
					    "reposHaveMultipleApps": "Repozytoria mogą zawierać wiele aplikacji",
 | 
				
			||||||
    "fdroidThirdPartyRepo": "Zewnętrzne repo F-Droid",
 | 
					    "fdroidThirdPartyRepo": "Zewnętrzne repo F-Droid",
 | 
				
			||||||
    "steam": "Steam",
 | 
					 | 
				
			||||||
    "steamMobile": "Mobilny Steam",
 | 
					    "steamMobile": "Mobilny Steam",
 | 
				
			||||||
    "steamChat": "Steam Chat",
 | 
					    "steamChat": "Steam Chat",
 | 
				
			||||||
    "install": "Instaluj",
 | 
					    "install": "Instaluj",
 | 
				
			||||||
@@ -187,6 +189,9 @@
 | 
				
			|||||||
    "disableVersionDetection": "Wyłącz wykrywanie wersji",
 | 
					    "disableVersionDetection": "Wyłącz wykrywanie wersji",
 | 
				
			||||||
    "noVersionDetectionExplanation": "Opcja ta powinna być używana tylko w przypadku aplikacji, w których wykrywanie wersji nie działa poprawnie.",
 | 
					    "noVersionDetectionExplanation": "Opcja ta powinna być używana tylko w przypadku aplikacji, w których wykrywanie wersji nie działa poprawnie.",
 | 
				
			||||||
    "downloadingX": "Pobieranie {}",
 | 
					    "downloadingX": "Pobieranie {}",
 | 
				
			||||||
 | 
					    "downloadX": "Pobierz {}",
 | 
				
			||||||
 | 
					    "downloadedX": "Pobrano {}",
 | 
				
			||||||
 | 
					    "releaseAsset": "Wydany pakiet",
 | 
				
			||||||
    "downloadNotifDescription": "Informuje o postępach w pobieraniu aplikacji",
 | 
					    "downloadNotifDescription": "Informuje o postępach w pobieraniu aplikacji",
 | 
				
			||||||
    "noAPKFound": "Nie znaleziono pakietu APK",
 | 
					    "noAPKFound": "Nie znaleziono pakietu APK",
 | 
				
			||||||
    "noVersionDetection": "Bez wykrywania wersji",
 | 
					    "noVersionDetection": "Bez wykrywania wersji",
 | 
				
			||||||
@@ -208,10 +213,12 @@
 | 
				
			|||||||
    "uninstallFromDevice": "Odinstaluj z urządzenia",
 | 
					    "uninstallFromDevice": "Odinstaluj z urządzenia",
 | 
				
			||||||
    "onlyWorksWithNonVersionDetectApps": "Działa tylko w przypadku aplikacji z wyłączonym wykrywaniem wersji.",
 | 
					    "onlyWorksWithNonVersionDetectApps": "Działa tylko w przypadku aplikacji z wyłączonym wykrywaniem wersji.",
 | 
				
			||||||
    "releaseDateAsVersion": "Użyj daty wydania jako wersji",
 | 
					    "releaseDateAsVersion": "Użyj daty wydania jako wersji",
 | 
				
			||||||
 | 
					    "releaseTitleAsVersion": "Używaj nazwy wydania jako ciągu wersji",
 | 
				
			||||||
    "releaseDateAsVersionExplanation": "Opcja ta powinna być używana tylko w przypadku aplikacji, w których wykrywanie wersji nie działa poprawnie, ale dostępna jest data wydania.",
 | 
					    "releaseDateAsVersionExplanation": "Opcja ta powinna być używana tylko w przypadku aplikacji, w których wykrywanie wersji nie działa poprawnie, ale dostępna jest data wydania.",
 | 
				
			||||||
    "changes": "Zmiany",
 | 
					    "changes": "Zmiany",
 | 
				
			||||||
    "releaseDate": "Data wydania",
 | 
					    "releaseDate": "Data wydania",
 | 
				
			||||||
    "importFromURLsInFile": "Importuj z adresów URL w pliku (typu OPML)",
 | 
					    "importFromURLsInFile": "Importuj z adresów URL w pliku (typu OPML)",
 | 
				
			||||||
 | 
					    "versionDetectionExplanation": "Uzgodnij ciąg wersji z wersją wykrytą przez system operacyjny",
 | 
				
			||||||
    "versionDetection": "Wykrywanie wersji",
 | 
					    "versionDetection": "Wykrywanie wersji",
 | 
				
			||||||
    "standardVersionDetection": "Standardowe wykrywanie wersji",
 | 
					    "standardVersionDetection": "Standardowe wykrywanie wersji",
 | 
				
			||||||
    "groupByCategory": "Grupuj według kategorii",
 | 
					    "groupByCategory": "Grupuj według kategorii",
 | 
				
			||||||
@@ -235,8 +242,7 @@
 | 
				
			|||||||
    "addInfoBelow": "Dodaj tę informację poniżej.",
 | 
					    "addInfoBelow": "Dodaj tę informację poniżej.",
 | 
				
			||||||
    "addInfoInSettings": "Dodaj tę informację w Ustawieniach.",
 | 
					    "addInfoInSettings": "Dodaj tę informację w Ustawieniach.",
 | 
				
			||||||
    "githubSourceNote": "Limit żądań GitHub można ominąć za pomocą klucza API.",
 | 
					    "githubSourceNote": "Limit żądań GitHub można ominąć za pomocą klucza API.",
 | 
				
			||||||
    "gitlabSourceNote": "Pozyskiwanie pliku APK z GitLab może nie działać bez klucza API.",
 | 
					    "sortByLastLinkSegment": "Sortuj tylko według ostatniego segmentu łącza",
 | 
				
			||||||
    "sortByFileNamesNotLinks": "Sortuj wg nazw plików zamiast pełnych linków",
 | 
					 | 
				
			||||||
    "filterReleaseNotesByRegEx": "Filtruj informacje o wersji według wyrażenia regularnego",
 | 
					    "filterReleaseNotesByRegEx": "Filtruj informacje o wersji według wyrażenia regularnego",
 | 
				
			||||||
    "customLinkFilterRegex": "Filtruj linki APK według wyrażenia regularnego (domyślnie \".apk$\")",
 | 
					    "customLinkFilterRegex": "Filtruj linki APK według wyrażenia regularnego (domyślnie \".apk$\")",
 | 
				
			||||||
    "appsPossiblyUpdated": "Aplikacje mogły zostać zaktualizowane",
 | 
					    "appsPossiblyUpdated": "Aplikacje mogły zostać zaktualizowane",
 | 
				
			||||||
@@ -247,19 +253,27 @@
 | 
				
			|||||||
    "backgroundUpdateLimitsExplanation": "Powodzenie instalacji w tle można określić dopiero po otwarciu Obtainium.",
 | 
					    "backgroundUpdateLimitsExplanation": "Powodzenie instalacji w tle można określić dopiero po otwarciu Obtainium.",
 | 
				
			||||||
    "verifyLatestTag": "Zweryfikuj najnowszy tag",
 | 
					    "verifyLatestTag": "Zweryfikuj najnowszy tag",
 | 
				
			||||||
    "intermediateLinkRegex": "Filtr linków \"pośrednich\" do odwiedzenia w pierwszej kolejności",
 | 
					    "intermediateLinkRegex": "Filtr linków \"pośrednich\" do odwiedzenia w pierwszej kolejności",
 | 
				
			||||||
 | 
					    "filterByLinkText": "Filtruj linki według tekstu linku",
 | 
				
			||||||
    "intermediateLinkNotFound": "Nie znaleziono linku pośredniego",
 | 
					    "intermediateLinkNotFound": "Nie znaleziono linku pośredniego",
 | 
				
			||||||
 | 
					    "intermediateLink": "Link pośredni",
 | 
				
			||||||
    "exemptFromBackgroundUpdates": "Wyklucz z uaktualnień w tle (jeśli są włączone)",
 | 
					    "exemptFromBackgroundUpdates": "Wyklucz z uaktualnień w tle (jeśli są włączone)",
 | 
				
			||||||
    "bgUpdatesOnWiFiOnly": "Wyłącz aktualizacje w tle, gdy nie ma połączenia z Wi-Fi",
 | 
					    "bgUpdatesOnWiFiOnly": "Wyłącz aktualizacje w tle, gdy nie ma połączenia z Wi-Fi",
 | 
				
			||||||
 | 
					    "bgUpdatesWhileChargingOnly": "Wyłącz aktualizacje w tle, gdy urządzenie nie jest ładowane",
 | 
				
			||||||
    "autoSelectHighestVersionCode": "Automatycznie wybierz najwyższy kod wersji APK",
 | 
					    "autoSelectHighestVersionCode": "Automatycznie wybierz najwyższy kod wersji APK",
 | 
				
			||||||
    "versionExtractionRegEx": "Wyrażenie regularne wyodrębniające wersję",
 | 
					    "versionExtractionRegEx": "Wyrażenie regularne wyodrębniające wersję",
 | 
				
			||||||
 | 
					    "trimVersionString": "Przytnij ciąg wersji za pomocą RegEx",
 | 
				
			||||||
 | 
					    "matchGroupToUseForX": "Dopasuj grupę do użycia dla \"{}\"",
 | 
				
			||||||
    "matchGroupToUse": "Dopasuj grupę do użycia dla wyrażenia regularnego wyodrębniania wersji",
 | 
					    "matchGroupToUse": "Dopasuj grupę do użycia dla wyrażenia regularnego wyodrębniania wersji",
 | 
				
			||||||
    "highlightTouchTargets": "Wyróżnij mniej oczywiste elementy dotykowe",
 | 
					    "highlightTouchTargets": "Wyróżnij mniej oczywiste elementy dotykowe",
 | 
				
			||||||
    "pickExportDir": "Wybierz katalog eksportu",
 | 
					    "pickExportDir": "Wybierz katalog eksportu",
 | 
				
			||||||
    "autoExportOnChanges": "Automatyczny eksport po wprowadzeniu zmian",
 | 
					    "autoExportOnChanges": "Automatyczny eksport po wprowadzeniu zmian",
 | 
				
			||||||
 | 
					    "includeSettings": "Dołącz ustawienia",
 | 
				
			||||||
    "filterVersionsByRegEx": "Filtruj wersje według wyrażenia regularnego",
 | 
					    "filterVersionsByRegEx": "Filtruj wersje według wyrażenia regularnego",
 | 
				
			||||||
    "trySelectingSuggestedVersionCode": "Spróbuj wybierać sugerowany kod wersji APK",
 | 
					    "trySelectingSuggestedVersionCode": "Spróbuj wybierać sugerowany kod wersji APK",
 | 
				
			||||||
    "dontSortReleasesList": "Utrzymaj kolejność wydań z interfejsu API",
 | 
					    "dontSortReleasesList": "Utrzymaj kolejność wydań z interfejsu API",
 | 
				
			||||||
    "reverseSort": "Odwrotne sortowanie",
 | 
					    "reverseSort": "Odwrotne sortowanie",
 | 
				
			||||||
 | 
					    "takeFirstLink": "Wykorzystaj pierwszy link",
 | 
				
			||||||
 | 
					    "skipSort": "Pomiń sortowanie",
 | 
				
			||||||
    "debugMenu": "Menu debugowania",
 | 
					    "debugMenu": "Menu debugowania",
 | 
				
			||||||
    "bgTaskStarted": "Uruchomiono zadanie w tle - sprawdź logi.",
 | 
					    "bgTaskStarted": "Uruchomiono zadanie w tle - sprawdź logi.",
 | 
				
			||||||
    "runBgCheckNow": "Wymuś sprawdzenie aktualizacji w tle",
 | 
					    "runBgCheckNow": "Wymuś sprawdzenie aktualizacji w tle",
 | 
				
			||||||
@@ -277,6 +291,34 @@
 | 
				
			|||||||
    "onlyCheckInstalledOrTrackOnlyApps": "Sprawdzaj tylko zainstalowane i obserwowane aplikacje pod kątem aktualizacji",
 | 
					    "onlyCheckInstalledOrTrackOnlyApps": "Sprawdzaj tylko zainstalowane i obserwowane aplikacje pod kątem aktualizacji",
 | 
				
			||||||
    "supportFixedAPKURL": "Obsługuj stałe adresy URL APK",
 | 
					    "supportFixedAPKURL": "Obsługuj stałe adresy URL APK",
 | 
				
			||||||
    "selectX": "Wybierz {}",
 | 
					    "selectX": "Wybierz {}",
 | 
				
			||||||
 | 
					    "parallelDownloads": "Zezwalaj na równoległe pobierania",
 | 
				
			||||||
 | 
					    "useShizuku": "Użyj Shizuku lub Sui, aby zainstalować",
 | 
				
			||||||
 | 
					    "shizukuBinderNotFound": "Usługa Shizuku nie działa",
 | 
				
			||||||
 | 
					    "shizukuOld": "Stara wersja Shizuku (<11) - zaktualizuj ją",
 | 
				
			||||||
 | 
					    "shizukuOldAndroidWithADB": "Shizuku przez ADB działa na Androidzie 8.1+. Zaktualizuj Androida lub użyj zamiast tego Sui",
 | 
				
			||||||
 | 
					    "shizukuPretendToBeGooglePlay": "Ustaw Google Play jako źródło instalacji (jeśli używana jest aplikacja Shizuku)",
 | 
				
			||||||
 | 
					    "useSystemFont": "Czcionka systemowa",
 | 
				
			||||||
 | 
					    "useVersionCodeAsOSVersion": "Użyj versionCode aplikacji jako wersji wykrytej przez system operacyjny",
 | 
				
			||||||
 | 
					    "requestHeader": "Nagłówek żądania",
 | 
				
			||||||
 | 
					    "useLatestAssetDateAsReleaseDate": "Użyj najnowszego przesłanego zasobu jako daty wydania",
 | 
				
			||||||
 | 
					    "defaultPseudoVersioningMethod": "Domyślna metoda pseudo-wersji",
 | 
				
			||||||
 | 
					    "partialAPKHash": "Częściowy Hash pliku apk",
 | 
				
			||||||
 | 
					    "APKLinkHash": "Link Hash pliku apk",
 | 
				
			||||||
 | 
					    "directAPKLink": "Bezpośredni link do pliku apk",
 | 
				
			||||||
 | 
					    "pseudoVersionInUse": "Pseudo-wersja jest w użyciu",
 | 
				
			||||||
 | 
					    "installed": "Zainstalowano",
 | 
				
			||||||
 | 
					    "latest": "Najnowsza",
 | 
				
			||||||
 | 
					    "invertRegEx": "Odwróć wyrażenie regularne",
 | 
				
			||||||
 | 
					    "note": "Uwaga",
 | 
				
			||||||
 | 
					    "selfHostedNote": "Wybierz \"{}\", aby uzyskać dostęp do samodzielnie hostowanych lub niestandardowych instancji dowolnego źródła.",
 | 
				
			||||||
 | 
					    "badDownload": "Nie można przeanalizować pliku apk (jest niekompatybilny lub częściowo pobrany)",
 | 
				
			||||||
 | 
					    "beforeNewInstallsShareToAppVerifier": "Udostępnij nowe aplikacje za pomocą weryfikatora aplikacji (jeśli jest dostępny)",
 | 
				
			||||||
 | 
					    "appVerifierInstructionToast": "Udostępnij do weryfikatora aplikacji, a następnie wróć tutaj.",
 | 
				
			||||||
 | 
					    "wiki": "Pomoc/Wiki",
 | 
				
			||||||
 | 
					    "crowdsourcedConfigsLabel": "Baza konfiguracji",
 | 
				
			||||||
 | 
					    "crowdsourcedConfigsShort": "Baza konfiguracji",
 | 
				
			||||||
 | 
					    "allowInsecure": "Zezwalaj na niezabezpieczone żądania HTTP",
 | 
				
			||||||
 | 
					    "stayOneVersionBehind": "Pozostań jedną wersję w tyle za najnowszą",
 | 
				
			||||||
    "removeAppQuestion": {
 | 
					    "removeAppQuestion": {
 | 
				
			||||||
        "one": "Usunąć aplikację?",
 | 
					        "one": "Usunąć aplikację?",
 | 
				
			||||||
        "few": "Usunąć aplikacje?",
 | 
					        "few": "Usunąć aplikacje?",
 | 
				
			||||||
@@ -349,69 +391,18 @@
 | 
				
			|||||||
        "many": "{} i {} innych apek zostało zaktualizowanych.",
 | 
					        "many": "{} i {} innych apek zostało zaktualizowanych.",
 | 
				
			||||||
        "other": "{} i {} inne apki zostały zaktualizowane."
 | 
					        "other": "{} i {} inne apki zostały zaktualizowane."
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "xAndNMoreUpdatesPossiblyInstalled": {
 | 
					 | 
				
			||||||
        "one": "{} i 1 inna apka mogły zostać zaktualizowane.",
 | 
					 | 
				
			||||||
        "few": "{} i {} inne apki mogły zostać zaktualizowane.",
 | 
					 | 
				
			||||||
        "many": "{} i {} innych apek mogło zostać zaktualizowanych.",
 | 
					 | 
				
			||||||
        "other": "{} i {} inne apki mogły zostać zaktualizowane."
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    "pseudoVersion": "pseudo-wersja",
 | 
					 | 
				
			||||||
    "customLinkMessage": "Te linki działają na urządzeniach z zainstalowanym Obtainium",
 | 
					 | 
				
			||||||
    "shareAppConfigLinks": "Udostępnij konfigurację aplikacji w formie linku",
 | 
					 | 
				
			||||||
    "directAPKLink": "Bezpośredni link do pliku apk",
 | 
					 | 
				
			||||||
    "pseudoVersionInUse": "Pseudo-wersja jest w użyciu",
 | 
					 | 
				
			||||||
    "installed": "Zainstalowano",
 | 
					 | 
				
			||||||
    "latest": "Najnowsza",
 | 
					 | 
				
			||||||
    "invertRegEx": "Odwróć wyrażenie regularne",
 | 
					 | 
				
			||||||
    "note": "Uwaga",
 | 
					 | 
				
			||||||
    "standard": "Domyślny",
 | 
					 | 
				
			||||||
    "custom": "Własny",
 | 
					 | 
				
			||||||
    "useMaterialYou": "Material You",
 | 
					 | 
				
			||||||
    "followSystemThemeExplanation": "Podążanie za motywem systemowym jest możliwe tylko przy użyciu aplikacji firm trzecich",
 | 
					 | 
				
			||||||
    "appsNotUpdated": "Nie udało się zaktualizować aplikacji",
 | 
					 | 
				
			||||||
    "xWasNotUpdatedToY": "Błąd aktualizacji {} do {}.",
 | 
					 | 
				
			||||||
    "downloadX": "Pobierz {}",
 | 
					 | 
				
			||||||
    "downloadedX": "Pobrano {}",
 | 
					 | 
				
			||||||
    "releaseAsset": "Wydany pakiet",
 | 
					 | 
				
			||||||
    "versionDetectionExplanation": "Uzgodnij ciąg wersji z wersją wykrytą przez system operacyjny",
 | 
					 | 
				
			||||||
    "releaseTitleAsVersion": "Używaj nazwy wydania jako ciągu wersji",
 | 
					 | 
				
			||||||
    "sortByLastLinkSegment": "Sortuj tylko według ostatniego segmentu łącza",
 | 
					 | 
				
			||||||
    "filterByLinkText": "Filtruj linki według tekstu linku",
 | 
					 | 
				
			||||||
    "intermediateLink": "Link pośredni",
 | 
					 | 
				
			||||||
    "bgUpdatesWhileChargingOnly": "Wyłącz aktualizacje w tle, gdy urządzenie nie jest ładowane",
 | 
					 | 
				
			||||||
    "trimVersionString": "Przytnij ciąg wersji za pomocą RegEx",
 | 
					 | 
				
			||||||
    "matchGroupToUseForX": "Dopasuj grupę do użycia dla \"{}\"",
 | 
					 | 
				
			||||||
    "includeSettings": "Dołącz ustawienia",
 | 
					 | 
				
			||||||
    "takeFirstLink": "Wykorzystaj pierwszy link",
 | 
					 | 
				
			||||||
    "skipSort": "Pomiń sortowanie",
 | 
					 | 
				
			||||||
    "parallelDownloads": "Zezwalaj na równoległe pobierania",
 | 
					 | 
				
			||||||
    "useShizuku": "Użyj Shizuku lub Sui, aby zainstalować",
 | 
					 | 
				
			||||||
    "shizukuBinderNotFound": "Usługa Shizuku nie działa",
 | 
					 | 
				
			||||||
    "shizukuOld": "Stara wersja Shizuku (<11) - zaktualizuj ją",
 | 
					 | 
				
			||||||
    "shizukuOldAndroidWithADB": "Shizuku przez ADB działa na Androidzie 8.1+. Zaktualizuj Androida lub użyj zamiast tego Sui",
 | 
					 | 
				
			||||||
    "shizukuPretendToBeGooglePlay": "Ustaw Google Play jako źródło instalacji (jeśli używana jest aplikacja Shizuku)",
 | 
					 | 
				
			||||||
    "useSystemFont": "Czcionka systemowa",
 | 
					 | 
				
			||||||
    "useVersionCodeAsOSVersion": "Użyj versionCode aplikacji jako wersji wykrytej przez system operacyjny",
 | 
					 | 
				
			||||||
    "requestHeader": "Nagłówek żądania",
 | 
					 | 
				
			||||||
    "useLatestAssetDateAsReleaseDate": "Użyj najnowszego przesłanego zasobu jako daty wydania",
 | 
					 | 
				
			||||||
    "defaultPseudoVersioningMethod": "Domyślna metoda pseudo-wersji",
 | 
					 | 
				
			||||||
    "partialAPKHash": "Częściowy Hash pliku apk",
 | 
					 | 
				
			||||||
    "APKLinkHash": "Link Hash pliku apk",
 | 
					 | 
				
			||||||
    "selfHostedNote": "Wybierz \"{}\", aby uzyskać dostęp do samodzielnie hostowanych lub niestandardowych instancji dowolnego źródła.",
 | 
					 | 
				
			||||||
    "badDownload": "Nie można przeanalizować pliku apk (jest niekompatybilny lub częściowo pobrany)",
 | 
					 | 
				
			||||||
    "beforeNewInstallsShareToAppVerifier": "Udostępnij nowe aplikacje za pomocą weryfikatora aplikacji (jeśli jest dostępny)",
 | 
					 | 
				
			||||||
    "appVerifierInstructionToast": "Udostępnij do weryfikatora aplikacji, a następnie wróć tutaj.",
 | 
					 | 
				
			||||||
    "wiki": "Pomoc/Wiki",
 | 
					 | 
				
			||||||
    "crowdsourcedConfigsLabel": "Baza konfiguracji",
 | 
					 | 
				
			||||||
    "crowdsourcedConfigsShort": "Baza konfiguracji",
 | 
					 | 
				
			||||||
    "allowInsecure": "Zezwalaj na niezabezpieczone żądania HTTP",
 | 
					 | 
				
			||||||
    "stayOneVersionBehind": "Pozostań jedną wersję w tyle za najnowszą",
 | 
					 | 
				
			||||||
    "xAndNMoreUpdatesFailed": {
 | 
					    "xAndNMoreUpdatesFailed": {
 | 
				
			||||||
        "one": "Błąd aktualizacji {} i 1 innej apki.",
 | 
					        "one": "Błąd aktualizacji {} i 1 innej apki.",
 | 
				
			||||||
        "few": "Błąd aktualizacji {} i {} innych apek.",
 | 
					        "few": "Błąd aktualizacji {} i {} innych apek.",
 | 
				
			||||||
        "many": "Błąd aktualizacji {} i {} innych apek.",
 | 
					        "many": "Błąd aktualizacji {} i {} innych apek.",
 | 
				
			||||||
        "other": "Błąd aktualizacji {} i {} innych apek."
 | 
					        "other": "Błąd aktualizacji {} i {} innych apek."
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "xAndNMoreUpdatesPossiblyInstalled": {
 | 
				
			||||||
 | 
					        "one": "{} i 1 inna apka mogły zostać zaktualizowane.",
 | 
				
			||||||
 | 
					        "few": "{} i {} inne apki mogły zostać zaktualizowane.",
 | 
				
			||||||
 | 
					        "many": "{} i {} innych apek mogło zostać zaktualizowanych.",
 | 
				
			||||||
 | 
					        "other": "{} i {} inne apki mogły zostać zaktualizowane."
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "apk": {
 | 
					    "apk": {
 | 
				
			||||||
        "one": "{} apk",
 | 
					        "one": "{} apk",
 | 
				
			||||||
        "few": "{} apki",
 | 
					        "few": "{} apki",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,8 @@ const neverAutoTranslate = {
 | 
				
			|||||||
    root: ['*'],
 | 
					    root: ['*'],
 | 
				
			||||||
    obtainiumExportHyphenatedLowercase: ['*'],
 | 
					    obtainiumExportHyphenatedLowercase: ['*'],
 | 
				
			||||||
    theme: ['de'],
 | 
					    theme: ['de'],
 | 
				
			||||||
    appId: ['de']
 | 
					    appId: ['de'],
 | 
				
			||||||
 | 
					    placeholder: ['pl']
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const translateText = async (text, targetLang, authKey) => {
 | 
					const translateText = async (text, targetLang, authKey) => {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -545,7 +545,7 @@ class AddAppPageState extends State<AddAppPage> {
 | 
				
			|||||||
                  items: [
 | 
					                  items: [
 | 
				
			||||||
                    [
 | 
					                    [
 | 
				
			||||||
                      GeneratedFormTextField('appId',
 | 
					                      GeneratedFormTextField('appId',
 | 
				
			||||||
                          label: tr('appId'),
 | 
					                          label: '${tr('appId')} - ${tr('custom')}',
 | 
				
			||||||
                          required: false,
 | 
					                          required: false,
 | 
				
			||||||
                          additionalValidators: [
 | 
					                          additionalValidators: [
 | 
				
			||||||
                            (value) {
 | 
					                            (value) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										40
									
								
								pubspec.lock
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								pubspec.lock
									
									
									
									
									
								
							@@ -111,10 +111,10 @@ packages:
 | 
				
			|||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: battery_plus
 | 
					      name: battery_plus
 | 
				
			||||||
      sha256: "4b6dc87ffa72f8d1e63ae17c8700ee374a462e521f0152e2c76cfff484610764"
 | 
					      sha256: "220c8f1961efb01d6870493b5ac5a80afaeaffc8757f7a11ed3025a8570d29e7"
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "6.1.0"
 | 
					    version: "6.2.0"
 | 
				
			||||||
  battery_plus_platform_interface:
 | 
					  battery_plus_platform_interface:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -151,10 +151,10 @@ packages:
 | 
				
			|||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: cli_util
 | 
					      name: cli_util
 | 
				
			||||||
      sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19
 | 
					      sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "0.4.1"
 | 
					    version: "0.4.2"
 | 
				
			||||||
  clock:
 | 
					  clock:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -207,10 +207,10 @@ packages:
 | 
				
			|||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: csslib
 | 
					      name: csslib
 | 
				
			||||||
      sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb"
 | 
					      sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e"
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "1.0.0"
 | 
					    version: "1.0.2"
 | 
				
			||||||
  cupertino_icons:
 | 
					  cupertino_icons:
 | 
				
			||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -420,10 +420,10 @@ packages:
 | 
				
			|||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: flutter_local_notifications
 | 
					      name: flutter_local_notifications
 | 
				
			||||||
      sha256: "49eeef364fddb71515bc78d5a8c51435a68bccd6e4d68e25a942c5e47761ae71"
 | 
					      sha256: "674173fd3c9eda9d4c8528da2ce0ea69f161577495a9cc835a2a4ecd7eadeb35"
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "17.2.3"
 | 
					    version: "17.2.4"
 | 
				
			||||||
  flutter_local_notifications_linux:
 | 
					  flutter_local_notifications_linux:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -449,10 +449,10 @@ packages:
 | 
				
			|||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: flutter_markdown
 | 
					      name: flutter_markdown
 | 
				
			||||||
      sha256: bd9c475d9aae256369edacafc29d1e74c81f78a10cdcdacbbbc9e3c43d009e4a
 | 
					      sha256: f0e599ba89c9946c8e051780f0ec99aba4ba15895e0380a7ab68f420046fc44e
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "0.7.4"
 | 
					    version: "0.7.4+1"
 | 
				
			||||||
  flutter_plugin_android_lifecycle:
 | 
					  flutter_plugin_android_lifecycle:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -515,10 +515,10 @@ packages:
 | 
				
			|||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: html
 | 
					      name: html
 | 
				
			||||||
      sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a"
 | 
					      sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec"
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "0.15.4"
 | 
					    version: "0.15.5"
 | 
				
			||||||
  http:
 | 
					  http:
 | 
				
			||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -659,10 +659,10 @@ packages:
 | 
				
			|||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: path_provider
 | 
					      name: path_provider
 | 
				
			||||||
      sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378
 | 
					      sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd"
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "2.1.4"
 | 
					    version: "2.1.5"
 | 
				
			||||||
  path_provider_android:
 | 
					  path_provider_android:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -819,10 +819,10 @@ packages:
 | 
				
			|||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: share_plus
 | 
					      name: share_plus
 | 
				
			||||||
      sha256: "334fcdf0ef9c0df0e3b428faebcac9568f35c747d59831474b2fc56e156d244e"
 | 
					      sha256: "3af2cda1752e5c24f2fc04b6083b40f013ffe84fb90472f30c6499a9213d5442"
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "10.1.0"
 | 
					    version: "10.1.1"
 | 
				
			||||||
  share_plus_platform_interface:
 | 
					  share_plus_platform_interface:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -1049,10 +1049,10 @@ packages:
 | 
				
			|||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: url_launcher_android
 | 
					      name: url_launcher_android
 | 
				
			||||||
      sha256: "8fc3bae0b68c02c47c5c86fa8bfa74471d42687b0eded01b78de87872db745e2"
 | 
					      sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193"
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "6.3.12"
 | 
					    version: "6.3.14"
 | 
				
			||||||
  url_launcher_ios:
 | 
					  url_launcher_ios:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -1169,10 +1169,10 @@ packages:
 | 
				
			|||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: win32
 | 
					      name: win32
 | 
				
			||||||
      sha256: "2735daae5150e8b1dfeb3eb0544b4d3af0061e9e82cef063adcd583bdae4306a"
 | 
					      sha256: "10169d3934549017f0ae278ccb07f828f9d6ea21573bab0fb77b0e1ef0fce454"
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "5.7.0"
 | 
					    version: "5.7.2"
 | 
				
			||||||
  win32_registry:
 | 
					  win32_registry:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										38
									
								
								sign.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										38
									
								
								sign.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,38 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Script to sign unsigned APKs
 | 
				
			||||||
 | 
					# Assumptions:
 | 
				
			||||||
 | 
					# 1. Your PGP key is already imported on the locally running agent
 | 
				
			||||||
 | 
					# 2. An Android SDK is located at $ANDROID_HOME (or ~/Android/Sdk as fallback)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					usage() {
 | 
				
			||||||
 | 
					  echo "sign.sh <PATH_TO_KEYSTORE> <PATH_TO_BUILD_DIR>"
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -z "$1" ] || [ -z "$2" ] || [ ! -f "$1" ] || [ ! -d "$2" ]; then
 | 
				
			||||||
 | 
					  usage
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					KEYSTORE_LOCATION="$1"
 | 
				
			||||||
 | 
					BUILD_DIR="$2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					read -s -p "Enter your keystore password: " KEYSTORE_PASSWORD
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if [ -z "$ANDROID_HOME" ]; then
 | 
				
			||||||
 | 
					  ANDROID_HOME=~/Android/Sdk
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					if [ ! -d "$ANDROID_HOME" ]; then
 | 
				
			||||||
 | 
					  echo "Could not find Android SDK!" >&2
 | 
				
			||||||
 | 
					  exit 1
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for apk in "$BUILD_DIR"/*-release*.apk; do
 | 
				
			||||||
 | 
					  unsignedApk=${apk/-release/-unsigned}
 | 
				
			||||||
 | 
					  mv "$apk" "$unsignedApk"
 | 
				
			||||||
 | 
					  ${ANDROID_HOME}/build-tools/$(ls ${ANDROID_HOME}/build-tools/ | tail -1)/apksigner sign --ks "$KEYSTORE_LOCATION" --ks-pass pass:"${KEYSTORE_PASSWORD}" --out "${apk}" "${unsignedApk}"
 | 
				
			||||||
 | 
					  sha256sum ${apk} | cut -d " " -f 1 >"$apk".sha256
 | 
				
			||||||
 | 
					  gpg --batch --sign --detach-sig "$apk".sha256
 | 
				
			||||||
 | 
					  rm "$unsignedApk"
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
		Reference in New Issue
	
	Block a user