2017-10-08 3 views
2

Je rencontre actuellement un bug lors de la compilation dans Xcode pour iOS avec Meteor depuis que je mis à jour Xcode à iOS 11 et Meteor 1.5.2

La construction dans la console météore fonctionne bien mais quand j'essaye de courir sur Xcode, j'obtiens une erreur.

Voici les détails:

duplicate symbol _OBJC_CLASS_$_CDVLogger in: 
    /Users/almaju/Library/Developer/Xcode/DerivedData/Shotgun-gfxenslogefzngcppvotdeekcsof/Build/Intermediates.noindex/Shotgun.build/Debug-iphonesimulator/Shotgun.build/Objects-normal/x86_64/CDVLogger.o 
    /Users/almaju/Library/Developer/Xcode/DerivedData/Shotgun-gfxenslogefzngcppvotdeekcsof/Build/Products/Debug-iphonesimulator/libCordova.a(CDVLogger.o) 
duplicate symbol _OBJC_METACLASS_$_CDVLogger in: 
    /Users/almaju/Library/Developer/Xcode/DerivedData/Shotgun-gfxenslogefzngcppvotdeekcsof/Build/Intermediates.noindex/Shotgun.build/Debug-iphonesimulator/Shotgun.build/Objects-normal/x86_64/CDVLogger.o 
    /Users/almaju/Library/Developer/Xcode/DerivedData/Shotgun-gfxenslogefzngcppvotdeekcsof/Build/Products/Debug-iphonesimulator/libCordova.a(CDVLogger.o) 
ld: 2 duplicate symbols for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

J'ai ces plugins dans mon projet:

[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 
[email protected] 

J'ai cherché pendant un certain temps, a essayé de meteor reset ou supprimer et ajouter ios- plate-forme, joué avec les paramètres de construction et ainsi de suite, mais rien ne semble résoudre ce problème ...

En regardant cordova_plugins.js dans la construction, je peux voir ceci:

{ 
    "id": "cordova-plugin-console.console", 
    "file": "plugins/cordova-plugin-console/www/console-via-logger.js", 
    "pluginId": "cordova-plugin-console", 
    "clobbers": [ 
    "console" 
    ] 
}, 
{ 
    "id": "cordova-plugin-console.logger", 
    "file": "plugins/cordova-plugin-console/www/logger.js", 
    "pluginId": "cordova-plugin-console", 
    "clobbers": [ 
    "cordova.logger" 
    ] 
}, 

pourrait être le problème, mais je ne sais pas comment empêcher cela dans la construction de météorites ...

+0

de double possible de [symboles en double pour l'architecture x86 \ _64 sous Xcode] (https://stackoverflow.com/questions/ 24298144/duplicate-symbols-for-architecture-x86-64-under-xcode) – Styx

+0

Non, il s'agit d'un problème entièrement différent de Cordova. Pas un dupe. –

Répondre

2

j'ai réussi à le faire fonctionner en supprimant « CDVLogger » dans les phases de construction *> Sources Compile. Je ne suis pas sûr que ce soit la solution parfaite.

+0

Regardez ma réponse ci-dessous pour la bonne façon de traiter le problème. Votre méthode ne traite que temporairement le problème. Il reviendra sauf si vous supprimez le plugin. –

2

Il semble que la fonctionnalité cordova-plugin-console a été déplacée dans les fichiers principaux de Cordova. Si vous utilisez une version plus récente de Cordova, vous obtenez deux copies du code Console Logger et vous obtenez l'erreur XCode.

Pour se débarrasser du problème que vous devrez exécuter:

cordova plugin remove cordova-plugin-console 

et veiller à ce qu'il n'y a pas d'entrées pour dans votre fichier package.json dans la section dependencies ou plugins.

Je vous suggère ensuite de retirer et de réinstaller la plate-forme ios pour votre projet afin de vous assurer que tout est propre, mais vous pourriez ne pas avoir besoin de le faire.

cordova platform remove ios 
cordova platform add ios 

J'ai trouvé quelques commentaires sur le problème ici: https://forum.ionicframework.com/t/getting-error-on-ios-build/109326/3

0

J'ai eu le même problème et installer manuellement [email protected] dans app/.meteor/cordova-plugins a fonctionné pour moi.

Il semble que l'OMD travaille sur la fixation this issue dans la prochaine version (Meteor 1.6.1)