Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Wrong binary type for cv2 when uploading to Apple Cloud connect

Abierto
#169 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
flutter, opencv, python

Línea de trabajo

Empieza inspeccionando el tipo Mach-O de cv2.abi3.so y el tratamiento de los frameworks de cv2 en serious_python_darwin.podspec; compáralo con el wheel de numpy y su tipo binario aceptado. Reproduce el flujo de packaging con flutter build ipa y --cleanup-packages, y determina después qué cambio se necesita para que la validación de Apple acepte el bundle generado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Hello !

I've built and tested an Flutter app using Serious Python with several non-pure Python packages ( Like opencv ).
I've successfully publish my Apk but i got an error when publishing on the TestFlight of Apple Store.

Here are 3 issue about the same file cv2.cv2 explaining why Apple refuse my .ipa.

TMS-90171: Invalid bundle structure - The “Runner.app/Frameworks/cv2.cv2.framework/cv2.cv2” binary file is not permitted. Your app cannot contain standalone executables or libraries, other than a valid CFBundleExecutable of supported bundles. For details, visit: https://developer.apple.com/documentation/bundleresources/placing_content_in_a_bundle

ITMS-90124: The binary is invalid - The executable 'Runner.app/Frameworks/cv2.cv2.framework/cv2.cv2' has type 'BUNDLE' that is not valid. Only 'EXECUTE' is permitted.

ITMS-90210: Missing load commands - The executable at 'Runner.app/Frameworks/cv2.cv2.framework' does not have the necessary load commands. Try rebuilding the app with the latest Xcode version. If you are using third party development tools, contact the provider.

If i download wheels (numpy and opencv) from the https://pypi.flet.dev/ repository, and i extract the content, the file command returned 2 differents output for the .so built.

$ file numpy_1_26_4_2_cp312_cp312_ios_13_0_arm64_iphoneos_whl/numpy/core/_umath_tests.cpython-312-iphoneos.so
_umath_tests.cpython-312-iphoneos.so: Mach-O 64-bit dynamically linked shared library arm64
$ file opencv_python_4_10_0_84_1_cp312_cp312_ios_13_0_arm64_iphoneos_whl/cv2/cv2.abi3.so
cv2.abi3.so: Mach-O 64-bit bundle arm64

Do you have any idea why this package is refused by AppleStore ? Did you succeed to publish a iOS app using this package ( using serious python or Flet ) ?
Is a workaround to recompile the package using mobile-forge and adding a compilation flag to change the file type?

Note :

  • I'm on MacOS 26 & xcode 26. (out Github actions CI building and publishing too)
  • Adding the cv2 xcframeworks as a resources instead of frameworks ( serious_python_darwin.podspec ) doesn't change the error.
  • I had to change the CFBundlePackageType from APPL to FRMK in all info.plist of all python packages, or i got an issue about BundleID and AppId. Cannot determine the Apple ID from Bundle ID 'org.python.numpy.random.-pcg64' and platform 'IOS'. (12)
  • Apple Profiles and certs should be okay as it is not our first app Version deployed with our CI.
  • serious_python ( forked ) is a dependencie of a custom Flutter plugin, which is a dependencie of our application.
  • I explored the cv2.cv2.frameworks and xcframeworks folder after "ios preparation", i can't see any other issue in the plists of this xcframeworks.
  • app is build with flutter build ipa ... and uploaded with xcrun altool --upload-package ./path/app.ipa --type ios
  • I used the --cleanup-packages arg of the package command to remove all .a files.

Thanks a lot for any insights and for this awesome package.

Lenguaje dominante
Dart
Estrellas
325
Forks
46
Merge medio
14 h 53 min
PR fusionados (30 d)
5

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de flet-dev/serious-python

Todos los issues de flet-dev/serious-python

Issues similares

Más issues de Dart

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.