9
votes

CommonCrypto ne construit pas pour Arch armv7 iOS

Je viens de passer à la nouvelle Xcode. Après avoir mis à niveau, certaines de mes applications ne construiront pas. Je reçois cette erreur:

ld: cannot link directly with /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/system/libcommonCrypto.dylib.  Link against the umbrella framework 'System.framework' instead. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)


4 commentaires

Accédez à vos étapes de construction cible, sous "Link avec des bibliothèques" ou donc, retirez la libellmoncrypto.dylib.


Veuillez noter que lorsque vous avez dit TC, ne le déplacez pas à la poubelle. Si vous le faites, vous obtiendrez "LD: in 'in' /usr/lib/system/libcommoncrypto.dylib ', manque d'architecture requise ARMV7 dans le fichier /usr/lib/system/libcommoncrypto.dylib (2 tranches) pour l'architecture armv7". Il suffit de le remettre de votre poubelle.


@tc. Pourquoi retirer libcommoncrypto.dylib?


Vous devriez accepter une réponse pour faciliter la tâche de trouver la solution


5 Réponses :


3
votes

Je viens de résoudre ce problème comme suit:

Il s'avère que l'erreur de libcommoncrypto.dylib était un hareng rouge.

Après avoir retiré libccommoncrypto.dylib comme suggéré ci-dessus, j'ai eu 9 nouvelles erreurs. À première vue, j'ai supposé qu'ils étaient des erreurs de crypto, mais elles n'étaient en fait pas; Pour moi, il a effectivement retracé à Zlib n'ayant pas été inclus, ce qui a été "importé" dans une partie plus profonde de la mise en œuvre globale (dont la crypto est une partie).

Pour moi spécifiquement, il a suivi l'assidatadecompressor.h, #import

Je l'ai corrigé en incluant le cadre de libz.dylib manquant; En fin de compte, je n'avais pas besoin d'inclure explicitement libellmoncrypto.dylib.

Ainsi, assurez-vous de vérifier les erreurs de près après la bascule libcommoncrypto et assurez-vous que d'autres bibliothèques ne manquent pas, à la place.


0 commentaires

17
votes

J'ai résolu ce problème de manière difforme après que j'ai essayé les deux ci-dessus où ni n'ont travaillé pour moi.

Le problème était que lorsque j'ajoutais la bibliothèque de l'interface principale (principaux paramètres de construction ... etc.) Je cherchais initialement pour crypto , puis deux libs reviennent libcorecrypto .DYLIB et LIBLIBCOMMONCRYPTO.DYLIB , Si vous remarquez, les deux existent en couleur gris, contrairement aux libs de couleur Yello-coloré que vous ajoutez normalement. Ajout de ces causes Le compilateur de faire rapport (certains autres libs manquent, tels que la libz, ou une autre lib qui sera nécessaire, plus les fonctions que vous prenez.

Si vous remarquez que les deux libs ci-dessus seraient normalement Asseyez-vous sous JavaScriptCore.framework Bibliothèque (qui est le jaune), par conséquent, en supprimant la deuxième et en ajoutant javascriptcore.framework à la place, le problème a été résolu et Construire le succès a montré

également pour mentionner que sur la base des gris-libs existant comme un paquet à l'intérieur javascriptcore.framework , le libcrypto et l'autre n'existe pas Sous la / bibliothèque /.../ Système / chemin Comme mentionné ci-dessus, c'est-à-dire que vous ne les avez pas supprimés de votre système, ils ne sont tout simplement pas là.

Encore une fois, La solution est la suivante:

* à partir de vos paramètres de projet Xcode principaux, n'ajoutez pas: * dd xxx

Au lieu de cela, ajoutez: xxx

dans votre .m (code), simplement les obtenir normalement en faisant: < / fort> xxx

Ça devrait fonctionner correctement.

J'espère que cela aide.

genre Cordialement


1 commentaires

#import - pas #include



0
votes

J'utilise des cocoapodes pour la gestion de la bibliothèque. Une des bibliothèques (vous pouvez rechercher simple dans votre espace de travail) contenait référence à communcrypto.framework qui a été rouge dans la liste des cadres dans ses paramètres de projet.

Dans mon cas, je devais supprimer la dépendance sur communCrypto.framework, mais cette solution dure juste à une autre mise à jour de vos gousses.

BTW J'aimerais connaître une commande pour énumérer le graphique des dépendances entre les bibliothèques du podfile.


0 commentaires

0
votes

J'ai eu la même erreur,

ld: dans '/usr/lib/system/libcommonCrypto.dylib', manquant arm64 architecture nécessaire dans le fichier /usr/lib/system/libcommonCrypto.dylib (2 tranches) pour l'architecture arm64 clang: Erreur: commande de liaison a échoué avec le code de sortie 1 (utilisation -v pour voir invocation)

Je résolu ce problème en vérifiant mon PATH $. Il était un fichier manquant .

Utilisation find / -type f -name libcommonCrypto.dylib

En comparant mes libs avec mes amis systèmes Mac, il montre que ce fichier n'était pas présent sur mon ordinateur:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/system/libcommonCrypto.dylib

Xcode en utilisant $ fallback PATH sur /usr/lib/system/libcommonCrypto.dylib mais ce n'est pas le bien construit (i386 insteadof stuff bras).

Je copié la version de mon ami, se déplacer dans /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/system / et j'ai pu construire mes projets à nouveau.

Il y a un problème vicieux la cause il y a beaucoup même fichier pour cette lib en fonction de votre architecture et la plupart d'entre eux ne sont pas destinés à être utilisés pour ios builds. Mais le var env $ PATH sera fallback sur / usr / lib lorsqu'aucun fichier se trouvent sur dirs dédiés.

Xcode sur fallback /usr/lib/system/libcommonCrypto.dylib mais cela est certainement pas la lib correcte parce que ce ne construit pour ios, mais construit pour mon mac.


0 commentaires

0
votes

meilleure solution , car il est indiqué enlever libcommoncrypto.dylib et remplacer en ajoutant SystemConfiguration.framework.it a fonctionné pour moi, pourrait être utile à quelqu'un.J'ai eu une erreur de liaison à la liaison disant getlink contre le cadre parapluie "System.framework" . .


0 commentaires