Obtenir l'erreur suivante lorsque vous essayez d'utiliser Layar SDK dans mon application existante. Comment puis-je résoudre ça?
Ld /Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Products/Debug-iphoneos/hub.app/hub normal armv7
cd /Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub
setenv IPHONEOS_DEPLOYMENT_TARGET 5.0
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -Arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk -L/Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Products/Debug-iphoneos -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/ZBarSDK -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/Infosound/Lib -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/CrittercismSDK -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/UserVoiceSDK-2.0.4 -L/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/Libraries -F/Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Products/Debug-iphoneos -F/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub -filelist /Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Intermediates/hub.build/Debug-iphoneos/hub.build/Objects-normal/armv7/hub.LinkFileList -dead_strip -ObjC -all_load -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=5.0 -lMPOAuthMobile -lsbjson-ios -framework LayarSDK -framework Social -framework AddressBook -framework AddressBookUI -framework UIKit -framework QuartzCore -framework Twitter -framework SystemConfiguration -framework Security -framework OpenAL -framework OpenGLES -framework MessageUI -framework MediaPlayer -framework Foundation -framework CoreGraphics -lc++ -framework CoreTelephony -framework CoreVideo -framework CoreMotion -framework CoreMedia -framework CoreLocation -framework CoreData -framework CoreAudio -framework CFNetwork -framework AVFoundation -framework AudioToolbox -lxml2 -liconv -lz -framework MobileCoreServices -lzbar -linfosound -lCrittercism_v3_4_6 -lUserVoice -o /Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Products/Debug-iphoneos/hub.app/hub
duplicate symbol _jpeg_free_large in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o)
duplicate symbol _jpeg_free_small in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o)
duplicate symbol _jpeg_get_large in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o)
duplicate symbol _jpeg_get_small in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o)
duplicate symbol _jpeg_mem_available in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o)
duplicate symbol _jpeg_mem_init in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o)
duplicate symbol _jpeg_mem_term in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o)
duplicate symbol _jpeg_open_backing_store in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemname.o)
duplicate symbol _jpeg_free_large in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o)
duplicate symbol _jpeg_free_small in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o)
duplicate symbol _jpeg_get_large in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o)
duplicate symbol _jpeg_get_small in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o)
duplicate symbol _jpeg_mem_available in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o)
duplicate symbol _jpeg_mem_init in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o)
duplicate symbol _jpeg_mem_term in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o)
duplicate symbol _jpeg_open_backing_store in:
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemansi.o)
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jmemnobs.o)
duplicate symbol _main in:
/Users/pnawale/Library/Developer/Xcode/DerivedData/hub-afxxzaqisdfliwbzxbixsaifljcl/Build/Intermediates/hub.build/Debug-iphoneos/hub.build/Objects-normal/armv7/main.o
/Users/pnawale/Documents/Paresh/Yamaha_iPhone/Code/Final/hub/LayarSDK.framework/LayarSDK(jpegtran.o)
ld: 17 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Cela peut arriver si vous avez accidentellement #import
un fichier .m
au lieu du .h
!
Généralement, ce type d'erreur est dû à des classes et des xibs dupliquées dans votre dossier de projet. Par exemple, dans mon projet, certains fichiers de classe ont été dupliqués (fichiers .h/.m). Vous pouvez voir ces classes en double sous target->Build phases->compile sources
.
Il suffit de regarder et de supprimer les cours supplémentaires. Le problème sera résolu.
Cela se produit avec des variables statiques dans un fichier d'en-tête (fichier d'en-tête inclus dans plusieurs fichiers d'implémentations).
J'avais cette erreur parce que j'ai utilisé les drapeaux d'avertissement recommandés par Xcode. GCC_NO_COMMON_BLOCKS = OUI était à l'origine du problème. Remettre à NO l'a corrigé pour moi.
Cette erreur peut également être provoquée si vous avez des importations cycliques .... supposons que vous ayez VC1.h
, VC2.h
et VC3.h
exemples générant l'erreur: (tous sont les fichiers .h
)
VC1
et VC1 importe VC2
VC2
et VC2 importe VC3
et VC3 importe VC1
Solution:
.m
au lieu du .h
.h
a besoin de cette classe, utilisez @class (nameOfClass);
au lieu d'importer le .h
Faites attention lorsque vous utilisez #import
, importez uniquement ce dont vous avez besoin.
Soyez prudent si vous utilisez Cordova iOS 4.5.0
, une erreur de ce type peut se produire.
duplicate symbol _OBJC_METACLASS_$_CDVLogger in:
/Users/toto/Library/Developer/Xcode/DerivedData/imp-hkzujazvkracgugyxunzwnzpeiqx/Build/Intermediates/imp.build/Debug-iphoneos/imp.build/Objects-normal/armv7/CDVLogger.o
/Users/toto/Library/Developer/Xcode/DerivedData/imp-hkzujazvkracgugyxunzwnzpeiqx/Build/Products/Debug-iphoneos/libCordova.a(CDVLogger.o)
ld: 2 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Cela peut être dû à l'utilisation de cordova-plugin-console
, qui n'est plus utile dans Cordova iOS 4.5.0
(et casse également la construction!).
Réparer
cordova plugin remove cordova-plugin-console
Voir référence: https://cordova.Apache.org/announcements 2017/09/08/ios-release.html
J'ai déjà fait face à ce problème une fois. La raison en est que j'ai copié certaines méthodes et variables déclarées dans le corps de l'implémentation d'une classe à une autre. Donc, renommez ces méthodes et déplacez-les dans la zone de déclaration de l'interface => résolue.
Je voyais le même problème, mais avec des bibliothèques différentes. Le correctif était le suivant:
Target -> Build Phases -> Linked Binary With Libraries
Assurez-vous que les bibliothèques incluses ont du sens. Dans mon cas, mon projet avait libPods * .a (j'utilise CocoaPods pour la gestion de la dépendance) mais également quelques bibliothèques incluses dans mes bibliothèques partagées dans le pod, ce qui était à l'origine des doublons.
Mon problème était ... étrange. Je ne sais pas comment cela s'est passé, mais à un moment donné, Xcode a décidé d'inclure une fois de plus l'ancien fichier .m
dans son fichier .pbxproj
. La seule façon pour moi de le trouver était en comparant mes modifications dans git, en regardant la version du code où la première compilation avait échoué.
Le simple fait de supprimer cette ligne a résolu mon problème:
Je viens de corriger cette erreur. J'ai eu CocoaPods installant quelques frameworks (AWS, SDWebImage, AFNetworking. J'ai glissé manuellement dans 2 frameworks, Facebook et ImageIO. La plupart de mes erreurs de "symbole dupliqué" ont été interceptées sur des classes Facebook. J'ai supprimé le framework et l'a ajouté au fichier podfile. Doit avoir été une erreur ou une duplication dans les bibliothèques requises par Facebook.
J'avais des fichiers en double dans mon Xcode. Physiquement, il y avait un fichier m et un fichier h. Mais dans le projet il a été doublé, causant des doublons dans les sources de compilation . Après la suppression des doublons, le problème de fichier m et h a été résolu.
C'est parce que le simulateur iPhone a des références en double .h & .m. J'ai lutté pendant des heures pour ce bogue.
Ma solution était simple. J'ai copié le projet sur ma clé USB et l'ai effacé de la mémoire de l'ordinateur.
A ouvert un nouveau projet, copié le storyboard et ajouté les fichiers .h & .m. Certaines erreurs ont été corrigées en sélectionnant à nouveau les classes dans la vue storayboard.
J'ai aussi eu des symboles en double. Je viens de renommer la procédure (app -> app1, app2) et les champs associés app.XXX -> app1.XXX. et ça a fonctionné!
Voir: (dans un fichier .m)
AppDelegate* app1;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
app1 = (AppDelegate *)[[UIApplication sharedApplication] delegate];
}
return self;
}
(...)
- (int) getLimit
{
if (app1.product2buyed)
return MAXID;
else if (app1.product1buyed)
return 70;
else
return 10;
VOUS POURRIEZ AVOIR INSTALLÉ DES PLUGINS SIMILAIRES.
J'utilise Cordova et j'ai également eu plusieurs erreurs de symbole en double. J'avais installé deux plugins similaires:
Corrigé en supprimant "l'email du plugin cordova" en utilisant ...
cordova plugin remove cordova-plugin-email
Après ça j'ai couru ...
cordova prepare
cordova build ios
Maintenant, ma construction xCode a fonctionné comme un charme! Woooo Hooo!
Veuillez vérifier si vous avez ajouté un cadre plus d'une fois, supprimez-le s'il a été ajouté plusieurs fois, puis faites-le glisser à nouveau.
J'espère que cela résoudra votre problème. Bon codage.