Nizz05 and Claude Opus 5
a228392dc6
ci(android): fix split build, produce universal APK in the same Gradle run
...
Build Android APK / Build Release APKs (push) Successful in 14m40s
The previous commit made `assembleRelease` depend on AGP's
`packageReleaseUniversalApk`. That task derives the universal APK from an
App Bundle, which pulls `buildReleasePreBundle` into the graph - and AGP
refuses to build a bundle while ABI splits are enabled
("Multiple shrunk-resources files found ... Please disable building
multiple APKs when building an Android app bundle", run 52).
Instead only flip `splits.abi.universalApk` back on when Flutter passes
`-Psplit-per-abi=true`: the Flutter Gradle plugin enables the splits and
copies every output - including the universal one, as app-release.apk -
to build/app/outputs/flutter-apk/. Plain builds (`flutter run`) keep the
plugin's abiFilters path, which AGP does not allow together with splits.
Workflow: one `flutter build apk --release --split-per-abi` call, copy the
four well-known output names (a missing one fails the step), job timeout
60 min (a green run takes ~17), drop the unneeded platform pre-install and
add a per-ref concurrency group - runs 50/51 ran in parallel on the single
ARM64 runner and both died at the same instant.
Verified locally with Flutter 3.47.4: split build yields all four APKs
(universal 62 MB, per-ABI 20-24 MB) in one Gradle run; plain release
build still produces app-release.apk.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-17 23:30:13 +02:00
Nizz05
b7b6c4a2ab
ci(android): optimize release build to single pass with ABI splits and universal APK, pre-install platform SDKs, and increase timeout
Build Android APK / Build Release APKs (push) Failing after 14m39s
2026-09-17 22:02:50 +02:00
Nizz05
c655ba713b
ci(github): publish iOS IPA to GitHub Releases on build completion
Build Android APK / Build Release APKs (push) Failing after 1h2m17s
2026-09-17 09:40:18 +02:00
Nizz05
0b3cacf4b3
feat(ui): gesture zoom & double-tap for PDF viewer, fix navigation bar overlaps
Build Android APK / Build Release APKs (push) Failing after 1h4m35s
2026-09-17 09:37:40 +02:00
Nizz05 and Claude Opus 5
1eb089f6b5
ci(gitea): strip native libs with a native llvm-strip so APKs are not 15x too big
...
Build Android APK / Build Release APKs (push) Successful in 16m29s
AGP's stripReleaseDebugSymbols failed silently on the ARM64 runner because
the NDK r28 x86_64 llvm-strip cannot load libz.so.1 under QEMU, leaving the
unstripped libflutter.so (165 MB per ABI) in the APKs (universal 521 MB).
Pre-install the NDK version Flutter expects via sdkmanager and replace its
llvm-strip/llvm-objcopy with Ubuntu's native arm64 LLVM tools, which strip
any ELF target without emulation.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-17 00:18:48 +02:00
Nizz05 and Claude Opus 5
744def72fd
ci(gitea): use QEMU 10 for x86_64 emulation and stop masking build failures
...
Build Android APK / Build Release APKs (push) Successful in 17m46s
Flutter 3.47's gen_snapshot calls pthread_getattr_np(), which crashes the
QEMU 8.2.2 shipped by Ubuntu 24.04 ("QEMU internal SIGSEGV {code=MAPERR,
addr=0x20}", qemu#2170, fixed in 8.2.3/9.0). Install the static qemu-x86_64
from Debian trixie's qemu-user package (sha1-pinned) over the apt binary.
The build steps swallowed non-zero exit codes with an `|| { find ... }`
fallback, so the job turned green without producing any APK. Run the
builds plainly, fail "Organize Artifacts" unless all four APKs exist and
set if-no-files-found: error on the uploads.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-16 23:16:40 +02:00
Nizz05 and Claude Opus 5
1c66c31f6d
ci(gitea): run Flutter SDK switch step under bash (dash has no pipefail)
...
Build Android APK / Build Release APKs (push) Successful in 6m18s
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-16 22:59:25 +02:00
Nizz05 and Claude Opus 5
df34d66d38
build: upgrade to Flutter 3.47.4 (AGP 9.1 / Gradle 9.3, iOS 15 + UIScene), refresh deps and CI
...
Build Android APK / Build Release APKs (push) Failing after 1m7s
Flutter 3.24.5 -> 3.47.4 with the matching toolchain changes:
- pubspec: Dart ^3.11, Firebase core 4 / auth 6 / firestore 6 / storage 13,
drop unused image_cropper, logging, change_app_package_name,
pdf_widget_wrapper; pin path_provider_android <2.3 (needs NDK/CMake, not
feasible on the ARM64 Gitea runner)
- Dart: CardTheme -> CardThemeData, replace deprecated withOpacity,
Matrix4.scale, DropdownButtonFormField.value
- iOS: deployment target 15.0, UIScene lifecycle (AppDelegate/Info.plist),
untrack stale Podfile.lock, add LaunchImage asset set
- Android: Gradle 9.3.1, AGP 9.1.0, Kotlin 2.4.0, google-services 4.5.0,
layout.buildDirectory instead of removed Project.buildDir, remove manifest
package attribute and duplicate MainActivity, kotlin.incremental=false
- CI: pin FLUTTER_VERSION in both workflows; iOS on macos-26 with SwiftPM
disabled (CocoaPods only); Gitea job keeps cirruslabs 3.44.0 as base image
(images discontinued) and switches the bundled Flutter SDK by git tag
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-09-16 22:45:30 +02:00
Nizz05
85556dabb4
fix(deps): bump flutter to 3.24.5 across CI and update pdf_widget_wrapper to 1.0.4
Build Android APK / Build Release APKs (push) Successful in 5m1s
2026-09-16 00:13:20 +02:00
Nizz05
230430c91c
ci: use Flutter 3.24.5 on macos-15 for Xcode 16 and Firebase 11 compatibility
Build Android APK / Build Release APKs (push) Successful in 13m5s
2026-09-15 23:55:24 +02:00
Nizz05
285ba029f4
fix(ios): align Flutter to 3.19.3 and pin Firebase pods to 10.29 to match project code
Build Android APK / Build Release APKs (push) Successful in 13m18s
2026-09-15 23:47:38 +02:00
Nizz05
2b32b3712f
fix(ios): satisfy Flutter development team check and disable signing in Release.xcconfig
Build Android APK / Build Release APKs (push) Successful in 14m34s
2026-09-15 23:27:44 +02:00
Nizz05
7affff6e15
ci: switch to macos-15 runner with Xcode 16 and Swift 6 for Firebase SDK compatibility
Build Android APK / Build Release APKs (push) Successful in 16m51s
2026-09-15 23:09:05 +02:00
Nizz05
098c0105f5
fix(ci): fix bash redirection syntax error in iOS build step
Build Android APK / Build Release APKs (push) Successful in 16m57s
2026-09-15 23:00:49 +02:00
Nizz05
a21d370b91
ci: use Flutter stable, refresh pods, and log build diagnostics to step summary
Build Android APK / Build Release APKs (push) Successful in 16m55s
2026-09-15 22:56:09 +02:00
Nizz05
a2da5cdc89
fix(ios): bump iOS deployment target to 13.0 and disable hardcoded development team for CI builds
Build Android APK / Build Release APKs (push) Successful in 16m51s
2026-09-15 22:53:42 +02:00
Nizz05
362a7da74f
ci: let Flutter handle CocoaPods, set iOS platform 13.0, and restrict Android build to Gitea
Build Android APK / Build Release APKs (push) Successful in 17m37s
2026-09-15 22:49:26 +02:00
Nizz05
2b34d4a16f
ci: add GitHub Actions iOS IPA build workflow on macos-14
Build Android APK / Build Release APKs (push) Successful in 13m58s
latest
2026-09-15 22:42:39 +02:00
Nizz05
c1cdd54964
fix(test): use const declarations in widget_test to satisfy linter
2026-09-15 22:34:50 +02:00
Nizz05
fc95c6e6f7
docs: update README with current features, in-app user management, and security architecture
2026-09-15 22:31:02 +02:00
Nizz05
75f1610cde
feat: PDF zoom & external link fix, admin contact messages inbox, and in-app user management
2026-09-15 22:06:36 +02:00
Nizz05
9a823cbcdb
feat: integrate WordPress PDF Aussendungen with in-app reader into News
2026-09-14 21:32:03 +02:00
Nizz05
e512c081e3
security(storage): strictly restrict delete to photo author or verified firestore admin
2026-09-14 20:59:40 +02:00
Nizz05
cd3b71736d
fix(admin): make storage delete resilient and allow authenticated deletion in storage rules
2026-09-14 20:53:41 +02:00
Nizz05
3df2e4c5c8
feat(security & backup): double guard permissions in app, restrict news creation to admin, and add one-click firestore backup tool
2026-09-14 11:47:58 +02:00
Nizz05
877862aaf2
refactor(admin): remove hardcoded email and dynamically resolve admin privileges via Firestore Admins collection
2026-09-14 11:44:04 +02:00
Nizz05
c3513e85e5
feat(admin): grant full admin permissions in app and security rules to nicolas@gruber.info
2026-09-14 11:35:40 +02:00
Nizz05
e64b7a085c
feat(security & admin): update firestore and storage rules with admin token check and enable admin deletion in app
2026-09-14 11:33:17 +02:00
Nizz05
2e9abac25f
feat(auth & contact): separate Vorname/Nachname in registration, pre-fill read-only profile in contact, and restrict contact messages to registered users
2026-09-14 11:29:12 +02:00
Nizz05
010904a48a
refactor(auth): simplify to 2 tabs and embed Buerger-Code under Google in registration
2026-09-14 11:12:35 +02:00
Nizz05
a4755f6d53
feat(auth): integrate Google Sign-In UI with custom button and friendly preparation notice
2026-09-14 10:33:07 +02:00
Nizz05
80ff6cd95d
fix(auth): make auth dialog responsive and scrollable without overflow, add email verification on signup, and add password toggles
2026-09-14 10:26:44 +02:00
Nizz05
1420d0a113
feat(ci): restore universal APK, set 7-day retention for artifacts, and clean workspace to save storage
2026-09-14 10:07:15 +02:00
Nizz05
adc65e056d
feat(ci): build only 3 split APKs, upload individual artifacts, and publish unzipped APKs to Gitea Releases
2026-09-14 09:55:04 +02:00
Nizz05
ab9b22fc4a
fix(ci): use actions/upload-artifact@v3 for Gitea compatibility
2026-09-14 09:31:34 +02:00
Nizz05
b6baaf67e8
feat(build): migrate to declarative Gradle plugin DSL and bump Dart SDK constraint to >=3.0.0 <4.0.0
2026-09-14 09:28:36 +02:00
Nizz05
2917f93323
fix(build): route subprojects buildDir to ../build so Flutter CLI finds generated APKs
2026-09-14 09:17:01 +02:00
Nizz05
7f4218b0a2
fix(ci): strip LD_PRELOAD on child QEMU execution and remove rename watcher
2026-09-14 00:27:57 +02:00
Nizz05
8be95162d2
fix(ci): delegate execvp and posix_spawnp to real glibc symbols for PATH resolution
2026-09-14 00:17:36 +02:00
Nizz05
565a7d1347
fix(ci): restore string literal quotes in qemu_intercept.c
2026-09-14 00:16:33 +02:00
Nizz05
e44fcf1223
fix(ci): extract QEMU interceptor to dedicated C file to fix YAML indentation
2026-09-14 00:15:20 +02:00
Nizz05
f446fd044b
fix(ci): inject LD_PRELOAD interceptor to redirect all x86_64 ELF executions to QEMU
2026-09-14 00:13:23 +02:00
Nizz05
9226ce4b33
fix(ci): direct AAPT2 userspace wrapping with QEMU to bypass host binfmt and FEX
2026-09-14 00:03:12 +02:00
Nizz05
1acbeddc79
fix(ci): mount binfmt_misc and cleanly register QEMU x86_64 for AAPT2 on ARM64
2026-09-13 23:51:32 +02:00
Nizz05
46dc3368c6
fix(ci): unregister host FEX from binfmt and wrap FEXInterpreter with QEMU for AAPT2
2026-09-13 23:34:50 +02:00
Nizz05
b443213224
ci: enable privileged container mode and binfmt support for aapt2 execution
2026-09-13 23:07:19 +02:00
Nizz05
ca59dff4db
fix(ci): install x86_64 glibc cross libraries for qemu user emulation
2026-09-13 22:44:53 +02:00
Nizz05
f6f3a5ff06
fix(ci): correct YAML indentation in workflow file
2026-09-13 22:39:19 +02:00
Nizz05
ac395dad07
fix(ci): bridge Flutter linux-arm64 gen_snapshot using qemu wrapper
2026-09-13 22:30:22 +02:00
Nizz05
3c8ab00991
fix(android): remove hardcoded Windows java.home from repo gradle.properties
2026-09-13 22:20:56 +02:00