问题
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