"Non-portable path to file "File.h"; specified path differs in case from file name on disk" warning in bridging header after updating to Xcode 8.3 "Non-portable path to file "File.h"; specified path differs in case from file name on disk" warning in bridging header after updating to Xcode 8.3 ios ios

"Non-portable path to file "File.h"; specified path differs in case from file name on disk" warning in bridging header after updating to Xcode 8.3


It turned out that I misspelled the file's name, the correct name was "FILE.h" instead of "File.h". The warning appeared because of the soon coming APFS to macOS.


In my case, the !!project folder name!! isn't match the bridging header path.

I changed

"project/project-Bridging-Header.h"

to

"Project/project-Bridging-Header.h"

Tested on Xcode 9.3


One additional cause, that I experienced, was that a library project was importing itself incorrectly. For example, given projects Main and Library, Main would import Library with:

#import "Library/Library.h"

If Library attempts to use the same import, the Non-portable path warning will appear. Removing the path portion is the easy fix:

#import "Library.h"

The better fix is to import the specific components that Library needs from itself:

#import "Widget.h"#import "NSString+Library.h" 


matomo