Xcode 9 - 无法发出预编译头

Shu*_*ham 32 xcode objective-c ios swift xcode9

我有一个Objective-C项目以及swift MyProjectName-Bridging-Header.h,我还配置了Objective-C Bridging Header.我还在.pch文件中添加了"MyprojectName-Swift.h".

这在xcode 8.2上工作正常但是当我从xcode 9构建我的项目时,我得到以下错误.

无法发出预编译的头'/ Library/Developer/Xcode/DerivedData/MyprojectName-lajanjvhqjnfjksdsndsfkads/Build/Intermediates.noindex/PrecompiledHeaders/MyprojectName-Bridging-Header-swift_44AHJm3Z96qu-clang_2BIMGQVXGEZ09.pch'用于桥接标题'/ Documents/MyProjectLocaiton/FoneApp-桥接-Header.h"

请帮帮我.谢谢!

ua2*_*a24 15

如果您在项目中使用cocoapods,请阅读此内容.在更新pod和xcode使第一次构建成功后,我只是将部署目标更新到iOS 10或11.所以问题是在podfile里面我有线

platform :ios, '11.0'
Run Code Online (Sandbox Code Playgroud)

在将podfile更改为platform to之后,我在项目中的部署目标是9.0

platform :ios, '9.0'
Run Code Online (Sandbox Code Playgroud)

项目是固定的.


Shu*_*ham 10

最后我得到了这个问题的解决方案.在我的项目中,Prefix Header路径没有明确定义.早先的道路是

$(SRCROOT)/MyPrefixHeaderFile.pch

MyPrefixHeaderFile.pch在项目文件夹内的另一个文件夹中,所以我更新Prefix Header路径

$(SRCROOT)/FolderName/MyPrefixHeaderFile.pch

  • 你是怎么做到的? (7认同)

Har*_*ris 10

还要确保导入"ProductModuleName-Swift.h"在.m文件中,而不是.h文件.

  • @Harris这是我的解决方法.谢谢. (3认同)
  • 您可能还需要在 .h 文件中前向声明类和协议:https://developer.apple.com/documentation/swift/imported_c_and_objective-c_apis/importing_swift_into_objective-c (2认同)

nik*_*_me 8

我发现我不小心打开了ProjectName.xcodeproj 文件,而不是打开ProjectName.xcworkspace文件。

打开xcworkspace文件,项目将再次开始工作!


Ana*_*and 7

当您在运行 xcodebuild 命令时在终端中收到此错误时,请确保通过 -workspace YourWorkspace.xcworkspace


Oka*_*kan 6

你可以试试这个解决方案。我已经通过这种方式解决了同样的问题。

产品 > 方案 > 编辑方案 > 在左侧菜单上选择“构建”> 查找隐式依赖项

在构建选项卡下,选中“查找隐式依赖项”:

查找隐式依赖

然后进行清理并再次构建。


小智 5

也许您创建了一个新目标,但没有在podfile中添加它

在此处输入图片说明

  • 请发布代码,而不是代码图像。 (7认同)