Xcode 6 Erreur “Manque Architecture i386” Lors de la Construction pour le Simulateur iOS
J'ai créé une coutume Objective-C cadre. Je voudrais importer dans n'importe quel compte tenu de iOS de projet et d'utiliser ses fonctionnalités sur le Simulateur iOS et un périphérique réel. Pour importer le cadre, je le lier à l'aide de la Phases de construction > Lien Binaire Avec les Bibliothèques paramètre dans l'application cible. Je suis alors en mesure de les importer dans une de mes classes avec cette déclaration:
#import <CustomFramework/CustomFramework.h>
Je peux instancier mon cadre de classes, mais lorsque j'essaie d'exécuter mon projet sur un appareil, j'obtiens le message d'erreur suivant:
dyld: Library not loaded: @rpath/CustomFramework.framework/CustomFramework
Referenced from: /var/mobile/Applications/A61E882D-481A-4C0B-B4FD-69F5D24968BF/TestApp.app/TestApp
Reason: image not found
Et si j'essaie de le lancer sur le simulateur, j'obtiens un message d'erreur différents:
ld: warning: ignoring file /Users/user/Desktop/CustomFramework.framework/CustomFramework, missing required architecture i386 in file /Users/user/Desktop/CustomFramework.framework/CustomFramework (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CustomFramework", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Cela se produit lorsque j'instancie une classe du framework. Si j'importe le cadre, mais qui n'en utilisent pas, mon application crée avec succès. Il a juste des erreurs à chaque fois que j'instancie une classe à partir d'un cadre pour une raison quelconque.
Pour obtenir l'application de construire sur un appareil, j'ai suivi cette DONC réponse. Au lieu de lier le cadre, j'ai ajouté une nouvelle Copie de Fichiers de la phase dans la cible Phases de construction paramètre, définissez la Destination de Cadre, et ajouté mon cadre.
Qui fonctionne très bien; cependant, je voudrais tester mon application sur le Simulateur iOS. Lorsque j'essaie d'exécuter mon application sur le simulateur, je reçois toujours le "manque architecture i386" erreur. J'ai essayé les solutions proposées à peu près tous liés, de SORTE rubrique que j'ai pu trouver, et rien ne m'a aidé à résoudre ce problème.
Veuillez noter que je suis en train d'utiliser mon personnalisée dans le cadre d'un nouveau projet Xcode, de sorte qu'aucun de l'application/paramètres de construction ont été modifiées par rapport à leurs valeurs par défaut.
Comment puis-je corriger cette erreur pour que je puisse exécuter mon application sur le Simulateur iOS et un appareil avec mon cadre inclus dans le projet? Aucune information serait grandement apprécié!
OriginalL'auteur Alexander | 2015-02-27
Vous devez vous connecter pour publier un commentaire.
Le problème était que le cadre n'a pas été compilé pour le Simulateur iOS est une architecture i386. Xcode ne compile un cadre pour l'architecture cible, donc si j'ai construit un cadre pour le Simulateur iOS, il ne fonctionnera pas sur un appareil, et si j'ai construit le cadre d'un périphérique, il ne serait pas travailler sur le Simulateur iOS.
J'ai créé mon cadre à partir de zéro avec l'aide de ce tutoriel: http://www.raywenderlich.com/65964/create-a-framework-for-ios
Le multi-architecture script de build est ce qui a permis à mon cadre à exécuter sur le Simulateur iOS et un périphérique.
Heureux de vous aider! Je suis complètement d'accord. J'ai également développer des applications pour Windows et Windows Phone, et je n'ai même pas eu à réfléchir à ce sujet sur ces plates-formes.
Mon cadre n'a pas été compilé pour le Simulateur iOS est l'architecture.Il prend uniquement en charge les périphériques, Comment faire pour que mon cadre de travail dans le Simulateur.Je suis à l'aide de <ImagPay> Cadre.
Si vous êtes de faire votre propre cadre, alors vous aurez envie de suivre le Rayon Wenderlich tutoriel dans ma réponse. Le tutoriel comprend un multi-architecture script de construction qui, une fois intégré dans votre processus de création, les travaux sur l'appareil et le simulateur. Si vous n'êtes pas de la création de votre propre cadre, vous aurez besoin de demander au développeur de ce cadre pour le compiler pour prendre en charge plusieurs architectures.
Merci pour votre réponse m'a aidé.
OriginalL'auteur Alexander
J'ai rencontré ce même problème avec Xcode 7.1 lorsque vous essayez de créer pour le simulateur.
Quelqu'un a dit il a travaillé pour eux sous Xcode 8.2.1, j'ai donc essayé de construction, de course, de là, et cela a fonctionné. Je n'ai pas eu à changer de cibles ou de quoi que ce soit dans mon projet.
Donc, essayez de mettre à niveau votre Xcode si vous le pouvez, vous serez sans doute obtenir des corrections de bugs ainsi.
OriginalL'auteur toddkaufmann