Xcode 9 - failed to emit precompiled header [duplicate]

陌路散爱 提交于 2019-11-26 09:11:02

问题


I have a project in Objective-C as well as in swift by taking MyProjectName-Bridging-Header.h and i also configured the Objective-C Bridging Header. Also i have added \'MyprojectName-Swift.h\' in .pch file.

This works fine on xcode 8.2 but when i build my project from xcode 9 i am getting the below error.

failed to emit precompiled header \'/Library/Developer/Xcode/DerivedData/MyprojectName-lajanjvhqjnfjksdsndsfkads/Build/Intermediates.noindex/PrecompiledHeaders/MyprojectName-Bridging-Header-swift_44AHJm3Z96qu-clang_2BIMGQVXGEZ09.pch\' for bridging header \'/Documents/MyProjectLocaiton/FoneApp-Bridging-Header.h\'

Please help me out from this. Thanks!


回答1:


Read this if you using cocoapods in project. I just update deployment target to iOS 10 or 11 in my case after updating pods and xcode make first build success. So problem was inside podfile where I had line

platform :ios, '11.0'

and my deployment target in project was 9.0 after I change my podfile to platform to

platform :ios, '9.0'

project was fixed.




回答2:


Finally i got the solution of this issue. In my project the Prefix Header path is not clearly defined. Earlier the path was

$(SRCROOT)/MyPrefixHeaderFile.pch

MyPrefixHeaderFile.pch is in another folder inside the project folder, So i update the Prefix Header path to

$(SRCROOT)/FolderName/MyPrefixHeaderFile.pch




回答3:


Also make sure your import of "ProductModuleName-Swift.h" is in your .m file, and not your .h file.




回答4:


I found out that I accidentally opened the ProjectName.xcodeproj file rather than the ProjectName.xcworkspace file.

Open the xcworkspace file, project will start working again!




回答5:


Maybe you create a new target, but you didn't add this at podfile




回答6:


You can try this solution. I have solved the same problem by this way.

Product > Scheme > Edit Scheme > Select "Build" on Left Menu > Find implicit dependencies

Under the build tab, check 'Find implicit dependencies':

Then make a clean and build again.




回答7:


in my point of view I solved simply switch the order of import statements and build works fine.




回答8:


Adding my very own situation to the loop.

In my bridging header file, le'Ts say I added an import

#import "File.h"

Inside the File.h header file, there was a type referenced from an import that was inside the Prefix.pch, had to add the missing #import in my File.h




回答9:


In my case I had the same compiler error with additional errors like "Unknown type" in one of my project files, So I just added this to the problematic file, and it solved it instantly.

#import <UIKit/UIKit.h>




回答10:


When you are getting this error in terminal upon running the xcodebuild command, do make sure you pass -workspace YourWorkspace.xcworkspace




回答11:


Also if you have multiple targets, be aware to include your #imports in every file.




回答12:


@Li Yakun This is the solution if you have more then one target in project, every new target in podfile must have:

target 'NEWTARGET' do
    # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
    use_frameworks!

    # Pods for MAINTARGET
    shared_pods
end


来源:https://stackoverflow.com/questions/46293028/xcode-9-failed-to-emit-precompiled-header

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!