Ionic-framework: ios **BUILD FAILED ** symboles en double pour l'architecture x86_64

Créé le 20 sept. 2017  ·  19Commentaires  ·  Source: ionic-team/ionic-framework

Version ionique : (cochez-en une avec "x")
[ ] 1.x (Pour les problèmes Ionic 1.x, veuillez utiliser https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[x] 3.x

Je soumets un ... (cochez-en un avec "x")
[x] rapport de bogue
[ ] demande de fonctionnalité
[ ] demande d'assistance => Veuillez ne pas envoyer de demandes d'assistance ici, utilisez l'un de ces canaux : https://forum.ionicframework.com/ ou http://ionicworldwide.herokuapp.com/

Comportement actuel :
Après une période indéfinie, mon application ne peut plus être créée pour les appareils iOS.

Comportement attendu:
Il devrait être capable de construire pour les appareils iOS.

Étapes à reproduire :
Je n'ai aucune idée de comment cela se produit

Code associé :
C'est ce que j'obtiens en essayant de construire pour ios

> cordova build ios
✖ Running command - failed!
[ERROR] An error occurred while running cordova build ios (exit code 1):


        (truncated) ... licate symbol _OBJC_IVAR_$_UNIHTTPStringResponse._body in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-6AE7BF574F7FD89D.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-ACD8B349DA1366AA.o
        duplicate symbol _OBJC_CLASS_$_UNIHTTPStringResponse in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-6AE7BF574F7FD89D.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-ACD8B349DA1366AA.o
        duplicate symbol _OBJC_METACLASS_$_UNIHTTPStringResponse in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-6AE7BF574F7FD89D.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-ACD8B349DA1366AA.o
        duplicate symbol _OBJC_IVAR_$_UNIJsonNode._array in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-7600CC35AA339D64.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-B9FEAECE639D8883.o
        duplicate symbol _OBJC_IVAR_$_UNIJsonNode._object in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-7600CC35AA339D64.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-B9FEAECE639D8883.o
        duplicate symbol _OBJC_CLASS_$_UNIJsonNode in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-7600CC35AA339D64.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-B9FEAECE639D8883.o
        duplicate symbol _OBJC_METACLASS_$_UNIJsonNode in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-7600CC35AA339D64.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-B9FEAECE639D8883.o
        duplicate symbol _OBJC_CLASS_$_CDVLogger in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/CDVLogger.o

        /Applications/XAMPP/xamppfiles/htdocs/LVDLV/clone_new/lvdlv/platforms/ios/build/emulator/libCordova.a(CDVLogger.o)
        duplicate symbol _OBJC_METACLASS_$_CDVLogger in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/CDVLogger.o

        /Applications/XAMPP/xamppfiles/htdocs/LVDLV/clone_new/lvdlv/platforms/ios/build/emulator/libCordova.a(CDVLogger.o)
        ld: 260 duplicate symbols for architecture x86_64
        clang: error: linker command failed with exit code 1 (use -v to see invocation)

        ** BUILD FAILED **


        The following build commands failed:
                Ld build/emulator/ShOroom.app/ShOroom normal x86_64
        (1 failure)
        Error: Error code 65 for command: xcodebuild with args: 
        -xcconfig,/Applications/XAMPP/xamppfiles/htdocs/LVDLV/clone_new/lvdlv/platforms/ios/cordova/build-debug.xcconfig,-workspace,ShOroom.xcworkspace,-scheme,ShOroom,-configuration,Debug,-sdk,iphonesimulator,-destination,platform=iOS 
        Simulator,name=iPhone 
        SE,build,CONFIGURATION_BUILD_DIR=/Applications/XAMPP/xamppfiles/htdocs/LVDLV/clone_new/lvdlv/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Applications/XAMPP/xamppfiles/htdocs/LVDLV/clone_new/lvdlv/platforms/ios/build/sharedpch

Les autres informations:
C'est la deuxième fois que cela m'arrive, après la première fois, j'ai dû créer un projet ionique à partir de zéro et intégrer lentement ce qui était dans le projet d'origine et construire pour ios après chaque itération afin de détecter le problème. Quelques heures plus tard et le code copié dans son intégralité, j'étais en quelque sorte capable de construire pour ios.
J'ai essayé de construire pour ios ce matin et j'ai toujours le même problème [voir la section de code associée] .
J'ai également essayé de supprimer mes répertoires /plugins & /node_modules mais cela n'a pas aidé.
Je n'ai rien trouvé sur le web pour m'aider non plus..

Informations ioniques : (exécutez ionic info partir d'une invite de terminal/cmd et collez la sortie ci-dessous) :

cli packages:
    @ionic/cli-utils  : 1.10.2
    ionic (Ionic CLI) : 3.10.3

global packages:
    Cordova CLI : 7.0.1

local packages:
    @ionic/app-scripts : 2.1.4
    Cordova Platforms  : android 6.2.3 ios 4.4.0
    Ionic Framework    : ionic-angular 3.6.1

System:
    ios-deploy : 1.9.1
    ios-sim    : 6.0.0
    Node       : v6.11.0
    npm        : 3.10.10
    OS         : OS X El Capitan
    Xcode      : Xcode 8.2.1 Build version 8C1002
reply

Commentaire le plus utile

Essayez de supprimer la console du plugin et réessayez, j'ai eu les mêmes problèmes. Mais j'ai Cordova ios 4.5

Le problème est CDVLogger qui est déjà dans cordova cli 7

Cc @kensodemann

Tous les 19 commentaires

Salut! Merci d'avoir ouvert un sujet avec nous !

Je ne peux pas reproduire votre erreur, ce qui est tout à fait logique car, comme vous le dites, cela fonctionne généralement puis s'arrête mystérieusement. Alors... commençons par quelques versions des choses :

J'utilise Xcode 9, quelle version utilisez-vous ?
J'utilise cordova-ios version 4.4.0 , qui ressemble à ce que vous utilisez...

Hmmmm... je vais essayer plusieurs choses

Hey @kensodemann , je suis actuellement sur Xcode Version 8.2.1

Merci!

Essayez de supprimer la console du plugin et réessayez, j'ai eu les mêmes problèmes. Mais j'ai Cordova ios 4.5

Le problème est CDVLogger qui est déjà dans cordova cli 7

Cc @kensodemann

Je l'ai dupliqué et corrigé, même si je ne suis pas tout à fait sûr que ce soit votre problème, mais ça vaut le coup.

Tout d'abord, j'ai supprimé mes répertoires node_modules et platform/ios et j'ai fait un npm i et ionic build , ce qui a fini par installer la version cordova-ios 4.5.0 , qui a causé exactement le même problème que vous.

Je suppose (et ce n'est qu'une supposition) que vous avez en quelque sorte cordova-ios 4.5.0 même si ionic info rapporte 4.4.0 (bizarre, mais je n'ai pas de meilleure explication à ce stade) .

Alors j'ai fait ça :

  1. Dans package.json , remplacez "cordova-ios": "^4.4.0" par "cordova-ios": "4.4.0" (pas de '^')
  2. Dans config.xml , remplacez <engine name="ios" spec="^4.4.0" /> par <engine name="ios" spec="4.4.0" />
  3. rm -rf node_modules/ platforms/ios/
  4. npm i
  5. ionic cordova build ios
  6. * CONSTRUCTION RÉUSSIE *

Donc, au moins pour moi, la clé du correctif était d'épingler la version cordova-ios à 4.4.0 plutôt que d'utiliser ^4.4.0 , ce qui nécessitera des mises à niveau vers la version mineure.

Bien sûr, cela signifie que lorsqu'il sera temps de mettre à jour cordova-ios , vous devrez le faire manuellement, mais vous voudrez probablement ce contrôle de toute façon.

Quoi qu'il en soit, essayez-le et faites-moi savoir si cela fonctionne pour vous.

@kensodemann Exactement le problème !

@kensodemann Hourra, je peux maintenant construire, merci !!

Voici le truc, avant de faire ioinc build je suis allé dans mon fichier package.json et voici ce que j'ai trouvé "cordova-ios": "^4.4.0", et non ^4.5.0 .

Quoi qu'il en soit, j'ai donc suivi vos instructions, exécuté rm -rf node_modules/ platform/ios puis npm i et npm build .

Cette dernière commande a ensuite changé mon "cordova-ios": "^4.4.0", en "cordova-ios": "^4.5.0", .
Afin de suivre au plus près vos instructions, je l'ai remplacée par votre suggestion "cordova-ios": "4.4.0", (idem pour config.xml ).

J'ai désinstallé mon node_modules & platform/ios une fois de plus et j'ai exécuté npm i puis ionic cordova build ios et cela a fonctionné .

Étonnamment, après cela, je me retrouve toujours avec "cordova-ios": "^4.4.0", dans mes package.json et <engine name="ios" spec="^4.4.0" /> dans mes config.xml

Étonnamment, après cela, je me suis toujours retrouvé avec "cordova-ios": "^ 4.4.0", dans mon package.json et dans mon config.xml

Je suppose que Cordova fait ça. Personnellement, je ne suis pas fan des outils qui se moquent de ma configuration... :(

Je vais fermer ça alors. Heureux que cela fonctionne pour vous maintenant.

@nuno a raison, le plug-in de la console est la cause première, qui a été inclus dans cordova 7, il suffit donc de supprimer le plug-in pour résoudre le problème.

@kensodemann
N'a pas fonctionné pour moi. j'ai eu

Ld build/émulateur/MyApp.app/MyApp normal x86_64
cd /Applications/IonicApps/NomBébé/plates-formes/ios
exporter IPHONEOS_DEPLOYMENT_TARGET=9.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Library/Frameworks/Python.framework /Versions/3.5/bin:/Users/saikrishna/Softwares/android-sdks/platform-tools:/Users/saikrishna/Softwares/android-sdks/tools:/usr/local/bin:/usr/bin:/bin: /usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10. 3.sdk -L/Applications/IonicApps/BabyName/platforms/ios/build/emulator -F/Applications/IonicApps/BabyName/platforms/ios/build/emulator -FMyApp/Plugins/cordova-plugin-facebook4 -FMyApp/Plugins/ cordova-plugin-googleplus -filelist /Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/MyApp.LinkFileList - Xlinker -rpath -Xlinker @executable_path/Frameworks -mios-simulator-version-min=9.0 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build/Intermediates/MyApp. build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/MyApp_lto.o -Xlinker -no_de duplicate -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -ObjC -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build /Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/MyApp.app.xcent /Applications/IonicApps/BabyName/platforms/ios/build/emulator/libCordova.a -weak_framework AudioToolbox -framework StoreKit -framework Bolts -framework FBSDKCoreKit -framework FBSDKLoginKit -framework FBSDKShareKit -framework CoreLocation -framework GoogleAppUtilities -framework GoogleAuthUtilities -framework GoogleNetworkingUtilities -framework GoogleSignIn -framework GoogleSymbolUtilities -framework GoogleUtilities -weak_framework Carnet d'adresses -weak_framework CoreText -weak_framework SafariServices -weak_framework Security -weak_framework SystemConfiguration -weak-lz -weak-lz -weak_framework WebKit -weak_framework Social -weak_framework MessageUI -Xlinker -d ependency_info -Xlinker /Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/MyApp_dependency_info.dat -o /Applications/ IonicApps/BabyName/platforms/ios/build/emulator/MyApp.app/MyApp
symbole en double _OBJC_CLASS__$_CDVLogger dans :
/Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/CDVLogger.o
/Applications/IonicApps/BabyName/platforms/ios/build/emulator/libCordova.a(CDVLogger.o)
symbole en double _OBJC_METACLASS_$_CDVLogger :
/Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/CDVLogger.o
/Applications/IonicApps/BabyName/platforms/ios/build/emulator/libCordova.a(CDVLogger.o)
ld : 2 symboles en double pour l'architecture x86_64
clang : erreur : la commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisez -v pour voir l'invocation)

* ÉCHEC DE CONSTRUCTION *

Les commandes de compilation suivantes ont échoué :
Ld build/émulateur/MyApp.app/MyApp normal x86_64
(1 échec)
Erreur : code d'erreur 65 pour la commande : xcodebuild avec les arguments : -xcconfig,/Applications/IonicApps/BabyName/platforms/ios/cordova/build-debug.xcconfig,-workspace,MyApp.xcworkspace,-scheme,MyApp,-configuration,Debug ,-sdk,iphonesimulator,-destination,platform=iOS Simulator,name=iPhone SE,build,CONFIGURATION_BUILD_DIR=/Applications/IonicApps/BabyName/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Applications/IonicApps/BabyName/platforms/ios /build/sharedpch

Environnement

packages cli : (/Applications/IonicApps/BabyName/node_modules)

@ionic/cli-utils  : 1.19.0
ionic (Ionic CLI) : 3.19.0

forfaits globaux :

cordova (Cordova CLI) : 7.1.0 
Gulp CLI              : CLI version 3.9.1 Local version 3.9.1

forfaits locaux :

Cordova Platforms : ios 4.5.4
Ionic Framework   : ionic1 1.3.3

Système:

ios-deploy : 1.9.1 
ios-sim    : 6.1.2 
Node       : v6.10.3
npm        : 2.15.12 
OS         : macOS Sierra
Xcode      : Xcode 8.3.3 Build version 8E3004b

Variables d'environnement:

ANDROID_HOME : /Users/saikrishna/Softwares/android-sdks

Divers :

backend : pro

@surajitdeveloper -

Êtes-vous sûr de ne pas installer le plugin de la console ?
As-tu tout supprimé et réinstallé à zéro ?

Si votre référentiel est en ligne, fournissez un lien et je pourrai y jeter un coup d'œil rapide. En général, cependant, il ne s'agit pas d'un problème d'Ionic Framework, mais d'un problème lié à l'utilisation de plugins incompatibles.

@kensodemann a raison, tout cela est dû au fait que les plugins sont anciens ou incompatibles.

Pour moi, il s'est avéré être le cordova-plugin-inappbrowser . Dans mon config.xml, il y avait toujours une référence à un dépôt git qui n'existait plus. Je n'ai d'abord pas remarqué le processus de construction, mais tout d'un coup, j'ai remarqué que la construction se plaignait de ne pas trouver le dépôt pour le plugin. La solution était assez simple : mettre la ligne dans le config.xml en commentaire, et réinstaller le plugin. Et iOS reconstruisait à nouveau :)

Donc, si cela peut vous aider, vérifiez votre journal de construction après avoir exécuté ionic cordova build ios - il peut contenir des erreurs concernant les plugins. Et vérifiez tous vos plugins : les réinstaller simplement ne vous aidera peut-être pas, vous devrez peut-être également mettre à jour les versions.

La solution de @nuno fonctionne pour moi, exécutez simplement :
cordova plugin rm cordova-plugin-console
cordova platform rm ios
cordova platform add ios
cordova build ios
J'utilise cordova-ios version 4.5.4.

Salut tout le monde,

J'ai eu le même problème et j'ai essayé d'exécuter la solution publiée par @didinj et ne fonctionne pas car après cela j'obtiens une erreur pour les scripts lors de l'exécution de la plate-forme rm puis de la construction d'ios, j'ajoute à nouveau des scripts d'application mais le problème était le suivant : npm install @ionic / app-scripts@latest --save-dev car installez la version 3.1.7 des scripts et cela génère la même erreur principale, puis j'exécute et encore des app-scripts mais avec une version inférieure pour les app-scripts et fonctionne maintenant bien avec 3.0.0 : npm install @ionic / [email protected] --save-dev

J'utilise aussi cordova-ios version 4.5.4 et toutes les dernières versions de tous dans macOS High Sierra 10.13.2 avec Xcode 9.2

paquets cli : (/usr/local/lib/node_modules)

@ionic/cli-utils  : 1.19.0
ionic (Ionic CLI) : 3.19.0

forfaits globaux :

cordova (Cordova CLI) : 8.0.0

forfaits locaux :

@ionic/app-scripts : 3.0.0
Cordova Platforms  : android 6.2.3 ios 4.5.4
Ionic Framework    : ionic-angular 3.9.2

Système:

ios-deploy : 1.9.2
Node       : v8.0.0
npm        : 5.0.0
OS         : macOS High Sierra
Xcode      : Xcode 9.2 Build version 9C40b

J'espère qu'avec cela je pourrai aider d'autres utilisateurs.

Merci à tous.

travaille pour moi! merci @kensodemann ! 😃

Selon https://github.com/apache/cordova-plugin-console

Ce plugin n'est plus en cours d'élaboration car la fonctionnalité fournie par ce plugin est désormais incluse dans cordova-ios 4.5.0 ou supérieur, et la prise en charge est déjà intégrée à cordova-windows > 5.0.0. Vous devez supprimer ce plugin de vos applications.

quelqu'un a-t-il encore ce problème ? à partir d'une nouvelle application gresh, je ne peux pas utiliser ce plugin ...

La solution de @nuno fonctionne aussi pour moi.

ionic cordova plugin remove cordova-plugin-console

  • Appuyez sur la commande ci-dessus pour obtenir le succès de la construction ios.

Merci pour le problème ! Ce problème est verrouillé pour empêcher les commentaires qui ne sont pas pertinents pour le problème d'origine. Si le problème persiste avec la dernière version d'Ionic, veuillez créer un nouveau problème et vous assurer que le modèle est entièrement rempli.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

daveshirman picture daveshirman  ·  3Commentaires

brandyscarney picture brandyscarney  ·  3Commentaires

SebastianGiro picture SebastianGiro  ·  3Commentaires

BilelKrichen picture BilelKrichen  ·  3Commentaires

MrBokeh picture MrBokeh  ·  3Commentaires