web-dev-qa-db-fra.com

Le SDK Zbar ne fonctionne pas dans iOS6

J'utilisais ZBar pour numériser dans iOS5 et cela fonctionnait bien.

Maintenant, après la mise à jour vers iOS6, cela ne fonctionne pas. Il montre une erreur suivante.

    ld: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/mac4/Desktop/my desktop/My app/MyApp name 20:09:12  /MyApp name/ZBarSDK/libzbar.a for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Qu'est-ce qui ne va pas de mon côté?

28
sathiamoorthy

j'ai récemment fait face au même problème. Le problème semble être que le SDK ZBar n'est pas prêt pour l'architecture armv7s.

J'ai résolu le problème de cette façon:

  1. Accédez à la page d'accueil de ZBar et accédez au référentiel Mercurial ( lien direct )
  2. Téléchargez le référentiel zbar au format Zip.
  3. Décompressez le fichier et accédez au sous-dossier nommé "iphone".
  4. Ouvrez le projet XCode.
  5. Supprimez le dossier "Exemples" (le dossier a provoqué une erreur de génération sur ma machine).
  6. Appuyez sur "CMD + B" et créez la source.
  7. Trouvez votre nouveau fichier libzbar.a. (Utilisateur/Bibliothèque/Développeur/Xcode/DerivedData/zbar ...)
  8. Remplacez l'ancien fichier libzbar.a de votre projet par le nouveau.
  9. Appuyez sur "CMD + R" et vous êtes prêt à partir.
30
Microns

Dans Xcode, accédez aux paramètres de votre cible, modifiez 'Valid Architectures '

de

armv7,armv7s

à

armv7

Ce changement signifie que votre application ne bénéficiera pas des optimisations possibles du nouveau processeur iPhone5, mais vous n'avez pas à attendre que les bibliothèques tierces soient mises à niveau ou à jouer avec un éditeur hexadécimal.

52
marimba

Le tutoriel de téléchargement/recompilation de sources hg est génial, mais vous n'avez pas besoin de faire tout cela.

Accédez simplement à http://sourceforge.net/projects/zbar/files/iPhoneSDK/beta/ et téléchargez ZBarSDK-1.3.1.dmg, et tout fonctionnera prêt à l'emploi pour les dernières architectures (dans mon cas armv7, armv7s).

Mise à jour:

Certains d'entre vous ont signalé des problèmes avec ZBarSDK sur XCode 5, iOS 7 ou les architectures arm64 ... eh bien, je suis retourné à ce projet aujourd'hui et j'ai rencontré des problèmes similaires et j'ai constaté qu'il existe une bibliothèque ZBarSDK qui est compilée pour fonctionner avec iOS 7 à: - http://www.nerdvision.net/app-development/ios/zbar-sdk . Je viens de remplacer les anciens fichiers par les nouveaux et mon projet a été compilé. Notez que les architectures dans les paramètres de construction de mon projet sont définies sur amrv7, arm64 ($ ARCHS_STANDARD), le SDK de base est défini sur iOS 8.0 et j'ai le drapeau Build Active Architectures Only défini sur Oui.

Il y a une question ici à SO à ce sujet: le SDK zbar ne fonctionne pas pour armv7s (iPad 4 iOS 7)

Merci à @cdescours pour l'astuce!

21
Oscar S.

J'ai le même problème mais je viens d'ajouter armv6 et armv7 alors ça marche pour iOS6. Insérez simplement armv6.

2
iKambad

votre bibliothèque binaire n'a pas de code pour armv7s. Vous devez donc le recompiler pour les architectures actuelles.

1
Andreas Fink

Recompiler la source, je télécharge le code source pour zbar et compile dans un nouveau projet. C'est simple.

1
gzfrancisco

Clonez le référentiel Mercurial et construisez avec Xcode. C'est très facile. Voici un lien vers le référentiel:

http://zbar.hg.sourceforge.net/hgweb/zbar/iphone/summary

0
Matt Connolly

J'apprends IOS développement. Après quelques jours à creuser,

Voici le tutoriel pour l'installation du SDK ZBar.

1, la réponse acceptée est correcte, mais avec certaines limitations. (essayé, ça marche!)

2, la solution alternative est ici . (essayé, ça marche!)

3, le mieux est de construire les différentes architectures séparées puis de les lier en utilisant lipo: Great Solution (essayé, génial!)

Quelques lectures pour comprendre ces architectures:

http://wanderingcoder.net/2010/07/19/ought-arm/

http://wanderingcoder.net/2011/09/25/compiling-armv7/

0
Yang

Entré ici avec le même problème après avoir téléchargé le code tutoriel RDC fourni dans son blog. Article très utile, mais la réponse la plus utile ici a été publiée par RacZo le 29/03. Je viens de télécharger l'image ZBarSDK-1.3.1.dmg d'origine, j'ai supprimé le ZBarSDK de mon projet et l'ai remplacé par l'original. Terminé.

0
knarf74