【问题标题】:Objective C classes cannot be recognized in swift after upgrade to Xcode 10升级到 Xcode 10 后,无法快速识别 Objective C 类
【发布时间】:2018-09-26 10:19:32
【问题描述】:

我有一个由 Swift 4 和 Objective C 开发的 iOS 项目,使用 Xcode 9 时一切正常。

XCode 升级到 10.0 后,我的 swift 类无法识别 Objective C 类和库,从而产生错误

'{project_name}-Swift.h' 文件未找到

使用未声明的类型'xxxxx'

后一种错误至少出现在以下几种情况:

  • 系统目标C类(如UIImage、UIView...)

  • cocoapods 库中的 Objective C 类(如 AFNetworking 2...)

  • 自定义目标 c 类

  • .h 文件中的#define 变量

我仍在使用 Swift 4(不是 4.2)。尝试清理构建文件夹并删除 DerivedData 并再次构建,这些错误仍然存​​在。

【问题讨论】:

    标签: ios objective-c swift xcode10 bridging-header


    【解决方案1】:

    我通过在构建阶段移动其中一个框架来解决问题。

    Targets -> Build Phases -> Link Binary With Libraries -> (remove) framework

    当查看 Link Binary With Libraries 时,我注意到有些框架的图标颜色较浅(似乎已停用),删除框架并重新构建后,一切正常。

    就我而言,我删除了与 Facebook SDK 一起安装的 Bolts 框架。之前,我改为使用 Cocoapods 更新 Facebook SDK,而不是手动将 Facebook SDK 库添加到项目中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 2014-07-13
      相关资源
      最近更新 更多