J'ai mis à niveau la version Xcode et lorsque j'utilise des bibliothèques statiques externes, je reçois ce message:
ld: le fichier est universel (3 tranches) mais ne contient pas de tranche (n) armv7s: / fichier / emplacement pour l'architecture armv7s clang: erreur: la commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisez -v pour voir l'invocation)
Existe-t-il un moyen de contourner cela et d'ajouter un support à la bibliothèque si le développeur de la bibliothèque n'a pas encore mis à jour sa bibliothèque?
ios
objective-c
xcode
ios6
static-libraries
Dafna Elazazer
la source
la source
Réponses:
Si vous souhaitez supprimer la prise en charge d'une architecture, par exemple, ARMv7-s dans votre cas, utilisez le menu Projet -> Paramètres de construction -> supprimez l'architecture des "architectures valides".
Vous pouvez l'utiliser comme solution temporaire jusqu'à la mise à jour de la bibliothèque. Vous devez supprimer l'architecture de votre projet principal, pas de la bibliothèque.
Vous pouvez également définir l'indicateur pour "Build Active Architecture Only" de votre configuration de débogage sur Oui. Laissez "Build Active Architecture Only" de la configuration de la version à No, juste pour que vous receviez un rappel avant de publier que vous devez mettre à niveau les bibliothèques tierces que vous utilisez.
la source
No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7).
de l'éditeur de liens que je ne pouvais résoudre qu'en ajoutanti386
à la liste des architectures valides.J'ai simplement basculé "Build Active Architecture Only" sur "Yes" dans les paramètres de build de la cible, et c'est OK maintenant!
la source
Essayez de supprimer armv7s de «l'architecture valide» du projet pour sortir de ce problème pour le téléphone iOS 5.1
la source
Je viens de publier un correctif ici qui s'appliquerait également dans ce cas - en gros, vous effectuez une recherche et un remplacement hexadécimal dans votre bibliothèque externe pour lui faire croire qu'il s'agit du code ARMv7. Vous devriez pouvoir l'utiliser
lipo
pour la diviser en 3 bibliothèques statiques, dupliquer / modifier celle ARMv7, puis réutiliserlipo
pour assembler une nouvelle bibliothèque pour les 4 architectures.la source
Prise en charge de Flurry pour iPhone 5 (ARMv7s) Comme je l'ai mentionné dans le post d'hier, Flurry a commencé à travailler sur une version du SDK iOS pour prendre en charge le processeur ARMv7s dans le nouvel iPhone 5 immédiatement après l'annonce de mercredi.
Je suis heureux de vous annoncer que le travail est terminé et que le SDK est désormais disponible sur le site.
la source
utilisez le menu Projet -> Paramètres de construction ->
puis supprimez armv7s des "architectures valides". Si la norme a été choisie, supprimez-la, puis ajoutez armv7.
la source
Au cas où cela arriverait à quelqu'un. J'ai construit ma propre bibliothèque à utiliser avec un code tiers. Pendant que je le construisais pour livrer, j'ai accidentellement laissé mon iPhone 4S branché, et donc Xcode a construit ma bibliothèque uniquement pour l'architecture branchée au lieu de suivre les paramètres du projet. Supprimez tous les périphériques branchés et reconstruisez la bibliothèque, liez-la, et tout devrait bien se passer.
J'espère que cela aide.
la source
Dans mon cas, je faisais un lien vers une bibliothèque tierce qui était un peu ancienne (développée pour iOS 6, sur XCode 5 / iOS 7). Par conséquent, j'ai dû mettre à jour la bibliothèque tierce, faire un nettoyage et une construction, et elle se construit maintenant avec succès.
la source