Xcode 10无法发出用于桥接头的预编译头

时间:2018-09-23 05:13:27

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

嗨,我在Xcode 10上遇到了一个非常烦人的错误

1 error generated. <unknown>:0: error: failed to emit precompiled header '/Users/me/Library/Developer/Xcode/DerivedData/APP-hlczpckeselwrtaqjcbxdpoiogkj/Build/Intermediates.noindex/PrecompiledHeaders/APP-Bridging-Header-swift_35K3KO8G70VCD-clang_3DGF15CYP79L0.pch' for bridging header '/Users/me/Desktop/Swift/Folder/APP/APP/UNLKV2-Bridging-Header.h'

我不确定如何解决这个问题,我已经尝试了一切。今天很突然,才没问题,但是第二次我将Firebase info.plist添加到了项目中,但出现此错误。我试图删除该文件,请确保已在“ Objective-C桥接标题”中正确输入了头文件的名称,并且将其输入为
$(PROJECT_DIR)/$(PROJECT_NAME)/$(PROJECT_NAME)-Bridging-Header.h
我已经多次清理并构建了该项目,然后重新安装了所有吊舱。

除此之外,我还得到一个错误

  

找不到JPSVolumeButtonHandler / JPSVolumeButtonHandler.h'文件

如果有人能帮助我解决这个问题,我将非常感激,我整天都在浏览每个帖子和论坛,但对我没有任何帮助。如果您需要有关此问题的更多信息,请告诉我。

6 个答案:

答案 0 :(得分:2)

有一个我尝试修复了几个小时的问题。 最终得到以下解决方案:

  1. 选择方案,从出现的菜单中选择Manage Schemes...
  2. 从方案的弹出列表中找到[Your Project Name]方案,将其选中并按列表左下角的-按钮删除
  3. 按下右上角的Autocreate Schemes Now按钮

没有足够的声誉来发布嵌入式图像,因此这里是带有步骤的屏幕快照的链接:   https://i.stack.imgur.com/NM76w.png   https://i.stack.imgur.com/GzWX3.png

答案 1 :(得分:1)

我目前正面临着完全相同的问题(缺少其他Pod标头);尝试删除所有pod文件夹,再次清除缓存安装,更新pod ...无济于事。

也尝试按照xconfig文件FRAMEWORK_SEARCH_PATHS = $(inherited) $(PROJECT_DIR) "$(SRCROOT)" "$(SRCROOT)/Framework"中的说明进行操作,但仍被阻止。

使用“旧版构建系统”时会发生此桥接头错误,因为使用Xcode10的新构建系统给较旧的项目带来了更多问题。邓诺(Dunno)(如果相关),但可以在这里current build phases of my target加入。

  
    

编辑:最终我发现了我的问题所在,对于某些人来说可能是相同的。

  
     

在工作区设置中,我将构建系统更改为旧版。但是,我也认为将“构建位置”更改为“旧版”是个好主意;那就是造成我问题的原因。

     

我如何解决:

     
    

a)在“工作区设置”中,在'Legacy build system'上构建系统

         

b)单击高级,然后将构建位置更改为Xcode Default

         

c),则由于过时的库libstdc ++,我的构建仍将失败;因此我在我的“ common.xconfig”文件CLANG_CXX_LIBRARY = libc++中使用libc ++库对其进行了更改。

  
     

现在一切正常。希望这对其他人有帮助。

答案 2 :(得分:0)

您能在...中搜索JPSVolumeButtonHandler / JPSVolumeButtonHandler.h吗?

  1. 查找器,并确保文件存在。
  2. 确保文件包含在您的项目中。
  3. 如果在bridging-header.h中包含JPSVolumeButtonHandler,但源中不存在JPSVolumeButtonHandler,则可能会产生一个发出预编译错误。

答案 3 :(得分:0)

经过大量的搜索和努力,我发现将出现错误“找不到文件”的头文件添加到Xcode项目中可以解决该问题。

希望有帮助!

答案 4 :(得分:0)

主要问题在Pod文件中。 如果您要重复使用两个目标,则需要为第二个目标定义广告连播。

在您的Pod文件中,您将得到类似的内容。

platform :ios, '9.0'

use_frameworks!

target your_project_target_name do 
pod 'Alamofire' 

end 

但是如果您有两个目标,请尝试此操作。

 platform :ios, '9.0'
 use_frameworks!

 def available_pods

 pod 'Alamofire'
    
 end 

target your_first_project_target do 

available_pods

end 

target your_second_project_target do 

available_pods

end 

我已解决此解决方案的所有错误。 干杯。

答案 5 :(得分:0)

这个问题可能有很多方面,但也可能是您已经为此框架声明了搜索路径,但文件夹已以某种方式重新排列。要修复它,请尝试以下操作:

在您使用的目标上点击 Build Settings 并搜索:

<块引用>

搜索路径

框架搜索路径标题搜索路径可能会有多个路径。

双击路径,您将获得一个可编辑的窗口。 在右侧,您可以选择是否希望 Xcode 搜索框架 non-recursiverecursive。 为麻烦的框架选择 recursive

然后按 Clean Build Folder (Cmd-Shift-K) 和 Run (Cmd R) 并保持手指交叉。