You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dev-only floating debug button: a draggable bug icon that opens the debug screen (tap) or hides itself (long-press), shown only in debug mode. The debug screen gains a Firebase test card — trigger a fatal crash, a non-fatal error (Android/iOS) or an analytics event (all platforms) to verify Crashlytics/Analytics against the acits-dev project.
CI provisions Firebase configs for the new per-flavour layout (ios/flavors/{dev,prod}/) and installs the flutterfire CLI so the iOS bundle-service-file build phase can select the right plist; the stale ios/Runner/GoogleService-Info.plist.example copy no longer breaks the pipeline.
Removed the FlutterFire upload-crashlytics-symbols Xcode build phase (it looked for the Crashlytics run script in SPM's DerivedData and failed the unsigned CI build with ProcessException: No such file or directory); uploadDebugSymbols set to false in firebase.json.
Emptied Runner.entitlements (kept the original as .example) so a personal (free) Apple team can sign local device builds — the inherited Push Notifications / Associated Domains capabilities aren't supported without a paid Apple Developer Program.
Re-added a guarded Crashlytics dSYM upload build phase: it uploads symbols on release/profile builds (readable iOS crash traces) and skips cleanly on debug/CI (--no-codesign) builds where no dSYM exists, instead of failing the build.
По-русски
Плавающая debug-кнопка только для dev: перетаскиваемая иконка-жук, открывает debug-экран (тап) или прячется (long-press), видна только в debug-режиме. На debug-экране добавлена Firebase-карточка — вызвать fatal crash, non-fatal ошибку (Android/iOS) или analytics-событие (все платформы) для проверки Crashlytics/Analytics на проекте acits-dev.
CI раскладывает Firebase-конфиги под новую per-flavour структуру (ios/flavors/{dev,prod}/) и ставит flutterfire CLI, чтобы iOS build phase bundle-service-file выбирал нужный plist; устаревшая копия ios/Runner/GoogleService-Info.plist.example больше не ломает пайплайн.
Удалён FlutterFire build phase upload-crashlytics-symbols (искал Crashlytics run script в DerivedData SPM и валил неподписанную CI-сборку с ProcessException: No such file or directory); uploadDebugSymbols выставлен в false в firebase.json.
Очищен Runner.entitlements (оригинал сохранён как .example), чтобы личная (бесплатная) Apple-команда могла подписывать локальные сборки на устройство — унаследованные Push Notifications / Associated Domains не поддерживаются без платного Apple Developer Program.
Возвращён защищённый build phase выгрузки dSYM в Crashlytics: выгружает символы на release/profile-сборках (читаемые iOS-краши) и корректно пропускается на debug/CI (--no-codesign) сборках без dSYM, вместо падения сборки.