2017-10-08 101 views
2

我目前遇到的一个错误,而在Xcode编译为iOS与流星,因为我升级的Xcode到iOS 11和流星1.5.2

流星控制台中的构建运行良好,但是当试图在Xcode上运行时,出现错误。

下面是详细信息:

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) 

我已经在我的项目这些插件:

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

我一直在寻找了一段时间,试图meteor reset或删除并重新添加ios-平台,玩建设设置等等,但似乎没有解决这个问题...

看在编译cordova_plugins.js,我可以看到这个:

{ 
    "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" 
    ] 
}, 

可能是问题,但我不知道如何防止这种情况的流星构建...

+0

可能的复制(https://stackoverflow.com/questions/ 24298144 /用于体系结构的重复符号-x86-64-xcode) – Styx

+0

不,这是Cordova特有的完全不同的问题。不是一个笨蛋。 –

回答

2

我设法使它在构建阶段>编译源代码删除“CDVLogger”工作。不知道这是完美的解决方案。

+0

请看下面的答案,以解决问题的正确方法。你的方法只是暂时处理这个问题。它会回来,除非你删除插件。 –

2

看来cordova-plugin-console功能已被移入Cordova主文件。如果您使用的是较新版本的Cordova,则最终会有两个Console Logger代码副本,并且会出现XCode错误。

为了摆脱,你将需要运行的问题:

cordova plugin remove cordova-plugin-console 

,然后保证有在dependenciesplugins部分没有条目,它在你的package.json文件。

我建议你然后删除并重新安装ios平台为您的项目,以确保一切都干净,但你可能不需要。

cordova platform remove ios 
cordova platform add ios 

我发现这里的问题的一些评论:https://forum.ionicframework.com/t/getting-error-on-ios-build/109326/3

0

我有同样的问题,并手动安装[email protected]app/.meteor/cordova-plugins为我工作。

似乎MDG正在在下一版本定影this issue(流星1.6.1)[\ _64下的Xcode为架构86重复的符号]的