- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
自从我将 Xcode 升级到 iOS 11 并将 Meteor 升级到 1.5.2 后,我在使用 Meteor 编译适用于 iOS 的 Xcode 时遇到了一个错误
在 meteor 控制台中构建运行良好,但是当尝试在 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)
我的项目中有这些插件:
cordova-android-support-gradle-release@0.0.2
cordova-custom-config@2.0.3
cordova-plugin-dialogs@1.3.3
cordova-plugin-facebook4@1.9.1
cordova-plugin-inappbrowser@1.7.1
cordova-plugin-meteor-webapp@1.4.2
cordova-plugin-splashscreen@4.0.3
cordova-plugin-statusbar@2.2.3
cordova-plugin-vibration@2.1.5
de.appplant.cordova.plugin.local-notification@0.8.4
org.apache.cordova.dialogs@1.3.1
org.apache.cordova.vibration@2.1.3
我已经搜索了一段时间,尝试过 meteor reset
或删除并重新添加 ios-platform,使用 Build Settings 等等,但似乎没有什么可以解决这个问题...
查看构建中的 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"
]
},
可能是问题所在,但我不知道如何在 meteor 构建中防止这种情况...
最佳答案
cordova-plugin-console
功能似乎已移至主 Cordova 文件中。如果您使用的是较新版本的 Cordova,您最终会得到控制台记录器代码的两个副本,并且会收到 XCode 错误。
要解决这个问题,您需要运行:
cordova plugin remove cordova-plugin-console
然后确保在 package.json
文件的 dependencies
或 plugins
部分中没有它的条目。
我建议您然后为您的项目删除并重新安装 ios
平台,以确保一切都是干净的,但您可能不需要这样做。
cordova platform remove ios
cordova platform add ios
我在这里找到了一些关于这个问题的评论:https://forum.ionicframework.com/t/getting-error-on-ios-build/109326/3
关于ios - 为 iOS 构建 Cordova/Meteor/Ionic : "duplicate symbol _OBJC_CLASS_$_CDVLogger",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46633797/
自从我将 Xcode 升级到 iOS 11 并将 Meteor 升级到 1.5.2 后,我在使用 Meteor 编译适用于 iOS 的 Xcode 时遇到了一个错误 在 meteor 控制台中构建运行
我是一名优秀的程序员,十分优秀!