Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Wrong binary type for cv2 when uploading to Apple Cloud connect

Ouverte
#169 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
À clarifier
Activité
À l'abandon
Stack technique
flutter, opencv, python
Domaine
build-system, mobile

Piste de recherche

Commencez par inspecter le type Mach-O de cv2.abi3.so et la gestion des frameworks cv2 dans serious_python_darwin.podspec ; comparez cela avec le wheel numpy et son type binaire accepté. Reproduisez le flux de packaging avec flutter build ipa et --cleanup-packages, puis déterminez quelle modification est nécessaire pour que la validation Apple accepte le bundle généré.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Dart
Étoiles
325
Forks
46
Merge moyen
14 h 53 min
PR mergées (30 j)
5

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de flet-dev/serious-python

Toutes les issues de flet-dev/serious-python

Issues similaires

Plus d'issues Dart

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.