Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"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

I updated to Xcode 8.3 and Swift 3.1 and got this warning in my bridging header file, referencing to an Objective-C header file:

Non-portable path to file "File.h"; specified path differs in case from file name on disk

How can I resolve this?

like image 390
Tamás Sengel Avatar asked Mar 28 '17 10:03

Tamás Sengel


3 Answers

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.

like image 200
Tamás Sengel Avatar answered Nov 12 '22 08:11

Tamás Sengel


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

like image 2
Den Avatar answered Nov 12 '22 09:11

Den


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" 
like image 1
Joel Murphy Avatar answered Nov 12 '22 09:11

Joel Murphy