【问题标题】:<TargetName-Swift.h> file not found [duplicate]<TargetName-Swift.h> 文件未找到 [重复]
【发布时间】:2015-04-11 21:00:40
【问题描述】:

我刚刚将我的 Xcode 更新到 6.3 并且我的项目运行良好,直到 xcode 6.2 开始出现错误。

错误是&lt;TargetName-Swift.h&gt; file not found,桥接头的当前路径在项目的子文件夹内,即.xcodeproj文件内的一层。

已经试过了

  1. 删除桥接头文件并重新创建。

  2. 在 Swift Compiler-Code generation 下更改路径

  3. 还尝试更改标题搜索路径,但我认为这已经是正确的。

  4. 检查了循环引用,但我认为这不是问题,因为它在更新 xcode 之前工作正常。

我还在某处读到它是在这条路径上的"$(TARGET_TEMP_DIR)/../$(PROJECT_NAME).build/DerivedSources" 生成的,但对我不起作用。

****编辑*** 检查生成的日志文件有错误,如“打开模块'Swift'的导入文件:权限被拒绝”。任何的想法 ??当然,我是我正在使用的 mac 的超级管理员。

尝试再次将 Xcode 降级到 6.2,一切正常。

任何帮助都会很棒..!! 谢谢。

【问题讨论】:

  • 你使用的是 swift 1.2 吗?如果没有,则更新 swift 并检查
  • 显然 xcode6.3 是 swift1.2 的默认设置,所以我想这不应该是使用 xcode6.3 的问题。
  • 您打开的是.xcproject 还是.xcworkspace
  • 有时循环导入也会导致问题。例如swift import objc class in bridge头文件,objc class头文件import swift.h

标签: ios objective-c xcode swift xcode6.3


【解决方案1】:

这是由于构建错误。 &lt;TargetName-Swift.h&gt; 在没有构建错误时生成。

Xcode 6.3 包含 swift 1.2,与早期的 swift 版本(随 xcode 6.2 一起分发)相比,它有一些重大变化。

【讨论】:

  • 您好,感谢您的回复,但正如我提到的,如果我仍然在 6.2 中运行相同的代码,它可以正常工作,那么您认为仍然会出现编译错误吗?
  • xcode 6.2 中的 swift 版本与 xcode 6.3 中的 swift 版本不同。因此,在 xcode 6.2 中编译的相同 swift 代码不会在 xcode 6.3 中编译
  • 哦,好的,我试试看。
【解决方案2】:
  1. 确保在构建设置中将Objective-C Bridging Header设置为“TARGET_NAME/Your-Bridging-Header.h”;”
  2. 打开终端并运行下一条命令:

    cd 项目文件夹

    sudo chown -R whoami *

【讨论】:

  • 桥接头将 Obj-C 暴露给 Swift。这是一个 Swift 到 Obj-C 的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
  • 1970-01-01
  • 2017-03-21
  • 1970-01-01
  • 2021-02-08
相关资源
最近更新 更多