【问题标题】:Exclude Xcode header search path排除 Xcode 标头搜索路径
【发布时间】:2020-05-03 00:38:00
【问题描述】:

我正在使用 Carthage,其中的一部分具有以下结构:

$SRCROOT
  -Code
  -Carthage
    -Build
    -Checkouts

一切运行良好,但在崩溃时,我在调试控制台中收到类似这样的错误。

error: /Users/alex/Desktop/x/Carthage/Build/iOS/CocoaLumberjack.framework/Headers/DDAbstractDatabaseLogger.h:30:1: error: duplicate interface definition for class 'DDAbstractDatabaseLogger'
@interface DDAbstractDatabaseLogger : DDAbstractLogger {
^

/Users/alex/Desktop/x/Carthage/Checkouts/FewPods/Pods/CocoaLumberjack/Classes/DDAbstractDatabaseLogger.h:30:12: note: previous definition is here
@interface DDAbstractDatabaseLogger : DDAbstractLogger {

我可以通过将 Checkouts 文件夹移到别处来解决,但这会带来一些不便。

还有什么其他方法可以让 Xcode 忽略 Checkouts 下的所有内容?

【问题讨论】:

  • 实际上尚不清楚 Carthage Checkouts 为何/如何进入您的目标依赖项...尝试查找是否存在 ALWAYS_SEARCH_USER_PATHS 某处并将其删除或设置为 NO...他们不能不小心添加了?
  • 嗨。我认为因此搜索了“Checkouts”目录的构建设置并尝试了一堆标志。 ALWAYS_SEARCH_USER_PATHS 设置为 NO(仅在 Carthage/Checkouts/facebook-ios-sdk/samples/FBSDKPlacesSample/FBSDKPlacesSample.xcodeproj/project.pbxproj 中设置为 YES,这无关紧要)
  • 你在使用多个目标吗???

标签: ios objective-c xcode carthage


【解决方案1】:

我也遇到了同样的问题,这是我遵循的步骤。

1) 在 Finder 中打开您的项目。

2) 点击pod项目

3) 在TextEditor中打开pbx文件

4) 搜索“CocoaLumberjack”,您会在项目中多次找到它。去掉它。保存更改并再次运行代码。你会发现没有更多的问题。

【讨论】:

  • 你能解释一下这个修复背后的想法吗?我没有像我使用 carthage 这样的 Pods.xcodeproj。我在 FewPods carthage 依赖项下捆绑了一些通过 cocoapods 导入的依赖项,其中包括 CocoaLumberJack。它是通过 carthage 作为框架导入的,所以我不能真正从主 project.pbxproj 中删除它,因为它不会编译。
猜你喜欢
  • 1970-01-01
  • 2011-03-26
  • 2023-03-18
  • 2023-03-23
  • 2019-06-13
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
相关资源
最近更新 更多