构建科尔多瓦/流星/离子为iOS:“重复的符号_OBJC_CLASS _ $ _ CDVLogger”
我目前遇到的一个错误,而在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"
]
},
可能是问题,但我不知道如何防止这种情况的流星构建...
我设法使它在构建阶段>编译源代码删除“CDVLogger”工作。不知道这是完美的解决方案。
请看下面的答案,以解决问题的正确方法。你的方法只是暂时处理这个问题。它会回来,除非你删除插件。 –
看来cordova-plugin-console
功能已被移入Cordova主文件。如果您使用的是较新版本的Cordova,则最终会有两个Console Logger代码副本,并且会出现XCode错误。
为了摆脱,你将需要运行的问题:
cordova plugin remove cordova-plugin-console
,然后保证有在dependencies
或plugins
部分没有条目,它在你的package.json
文件。
我建议你然后删除并重新安装ios
平台为您的项目,以确保一切都干净,但你可能不需要。
cordova platform remove ios
cordova platform add ios
我发现这里的问题的一些评论:https://forum.ionicframework.com/t/getting-error-on-ios-build/109326/3
我有同样的问题,并手动安装[email protected]
在app/.meteor/cordova-plugins
为我工作。
似乎MDG正在在下一版本定影this issue(流星1.6.1)[\ _64下的Xcode为架构86重复的符号]的
可能的复制(https://*.com/questions/ 24298144 /用于体系结构的重复符号-x86-64-xcode) – Styx
不,这是Cordova特有的完全不同的问题。不是一个笨蛋。 –