fix(ci): vind de macOS dartcv-frameworkbinary i.p.v. een niet-bestaand pad #891

Closed
brenno wants to merge 1 commit from fix/macos-dartcv-native-assets-path into main
Owner

Probleem

De dartcv4 2.x-migratie (#870/#873) brak de macOS-tak van de CI: Test (macos-latest) faalde op de spiegel met "dartcv-bibliotheek niet gevonden —
pad gewijzigd?"
nog vóór de detectietests draaiden. De detectie zocht naar een
dartcv.framework direct onder Build/Products/Debug/ en naar een
build/native_assets/macos/-tussenmap — geen van beide bestaat.

Oorzaak (lokaal geverifieerd met flutter build macos --debug)

dartcv4 2.x levert OpenCV als native-asset (assetnaam dartcv). Flutter verpakt
die op macOS in een dartcv.framework en bundelt het in de app onder
Contents/Frameworks/, met een kopie onder Build/Products/Debug/native_assets/.
De laadbare Mach-O staat op dartcv.framework/dartcv.

Fix

Zoek die frameworkbinary robuust op in de hele build-map (.dSYM uitgesloten)
i.p.v. één submap te raden:

LIB=$(find "$PWD/build" -path '*dartcv.framework/dartcv' -not -path '*.dSYM/*' 2>/dev/null | head -1)

Eén regel geraakt (plus de bijbehorende comment gecorrigeerd). Windows- en
Linux-detectie blijven ongemoeid — die vinden hun lib al.

Verificatie

  • Lokaal: flutter build macos --debug bouwt OciDeck.app; het patroon vindt
    de Mach-O dylib (file bevestigt: arm64 dynamically linked shared library).
  • Spiegel: de Test (macos-latest)-job draait de detectie + OpenCV-tests
    end-to-end (deze machine kan flutter test met native laag niet volledig
    cross-checken zonder de runner-toolchain).

Losstaand van de 15 falende Windows-tests (identiek op windows-2022/-latest) en
van de pin-kwestie in #888.

## Probleem De dartcv4 2.x-migratie (#870/#873) brak de macOS-tak van de CI: `Test (macos-latest)` faalde op de spiegel met **"dartcv-bibliotheek niet gevonden — pad gewijzigd?"** nog vóór de detectietests draaiden. De detectie zocht naar een `dartcv.framework` direct onder `Build/Products/Debug/` en naar een `build/native_assets/macos/`-tussenmap — geen van beide bestaat. ## Oorzaak (lokaal geverifieerd met `flutter build macos --debug`) dartcv4 2.x levert OpenCV als native-asset (assetnaam `dartcv`). Flutter verpakt die op macOS in een **`dartcv.framework`** en bundelt het in de app onder `Contents/Frameworks/`, met een kopie onder `Build/Products/Debug/native_assets/`. De laadbare Mach-O staat op `dartcv.framework/dartcv`. ## Fix Zoek die frameworkbinary robuust op in de hele build-map (`.dSYM` uitgesloten) i.p.v. één submap te raden: ``` LIB=$(find "$PWD/build" -path '*dartcv.framework/dartcv' -not -path '*.dSYM/*' 2>/dev/null | head -1) ``` Eén regel geraakt (plus de bijbehorende comment gecorrigeerd). Windows- en Linux-detectie blijven ongemoeid — die vinden hun lib al. ## Verificatie - Lokaal: `flutter build macos --debug` bouwt `OciDeck.app`; het patroon vindt de Mach-O dylib (`file` bevestigt: arm64 dynamically linked shared library). - Spiegel: de `Test (macos-latest)`-job draait de detectie + OpenCV-tests end-to-end (deze machine kan `flutter test` met native laag niet volledig cross-checken zonder de runner-toolchain). _Losstaand van de 15 falende Windows-tests (identiek op windows-2022/-latest) en van de pin-kwestie in #888._
fix(ci): vind de macOS dartcv-frameworkbinary i.p.v. een niet-bestaand pad
All checks were successful
scans / scans (pull_request) Successful in 3m28s
b100a37357
De dartcv4 2.x-migratie (#870/#873) liet de macOS-detectie zoeken naar een
`dartcv.framework` direct onder Build/Products/Debug/ en naar een
`build/native_assets/macos/`-tussenmap. Geen van beide bestaat, dus faalde
`Test (macos-latest)` op de spiegel met "dartcv-bibliotheek niet gevonden — pad
gewijzigd?" nog vóór de detectietests draaiden.

Werkelijk pad (lokaal geverifieerd met `flutter build macos`): dartcv4 2.x
levert OpenCV als native-asset (assetnaam `dartcv`) die Flutter op macOS in een
`dartcv.framework` verpakt en in de app onder Contents/Frameworks/ bundelt, met
een kopie onder Build/Products/Debug/native_assets/. De frameworkbinary staat op
`dartcv.framework/dartcv` (een Mach-O dylib).

Zoek die binary nu robuust op in de hele build-map (`.dSYM` uitgesloten) i.p.v.
één submap te raden, zodat app-naam en native_assets-nesting niet hoeven vast te
liggen. De guard `test -n "$LIB"` valt nu terecht pas als het pad écht verschuift.

Verificatie: lokale `flutter build macos` bevestigt dat het patroon de laadbare
Mach-O vindt; de macOS-CI-job op de spiegel draait de detectietests end-to-end.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Author
Owner

Achterhaald door de native-scan-fix (branch fix/native-face-scan-integration-test).

Bij het verifiëren bleek dat DARTCV_LIB_PATH door dartcv4 2.x nergens meer wordt
gelezen en de native laag onder flutter test sowieso niet laadt — de hele
detectie-/DARTCV_LIB_PATH-steiger (Makefile + ci.yml) is dode bedrading. De echte
native-testdekking komt nu van een integration_test op een echt platform. De
macOS-paddetectie die deze PR repareerde wordt bij de steiger-opschoning verwijderd,
dus deze PR heeft geen doel meer. Zie de follow-up-issue voor die opschoning.

Achterhaald door de native-scan-fix (branch `fix/native-face-scan-integration-test`). Bij het verifiëren bleek dat `DARTCV_LIB_PATH` door dartcv4 2.x nergens meer wordt gelezen en de native laag onder `flutter test` sowieso niet laadt — de hele detectie-/DARTCV_LIB_PATH-steiger (Makefile + ci.yml) is dode bedrading. De echte native-testdekking komt nu van een integration_test op een echt platform. De macOS-paddetectie die deze PR repareerde wordt bij de steiger-opschoning verwijderd, dus deze PR heeft geen doel meer. Zie de follow-up-issue voor die opschoning.
brenno closed this pull request 2026-07-26 15:20:03 +00:00
All checks were successful
scans / scans (pull_request) Successful in 3m28s

Pull request closed

Sign in to join this conversation.
No description provided.