28

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?

Tamás Sengel
  • 55,884
  • 29
  • 169
  • 223

5 Answers5

43

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.

Tamás Sengel
  • 55,884
  • 29
  • 169
  • 223
2

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

Den
  • 3,179
  • 29
  • 26
1

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" 
Joel Murphy
  • 845
  • 1
  • 6
  • 13
1

Encountered the problem in Qt (C++) on a MacOS computer from a code developed and working on Ubuntu.

My project had two files : server.cpp and Server.cpp.

The solution was to change the name of one file or the other.

secavfr
  • 628
  • 1
  • 9
  • 24
0

If you can't change the file names because it's a library code you could make the files that include your libraries case-sensitive! (If your PC is Windows 10 or up)

  1. Open Powershell(Admin)
  2. Use Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux too enable case-sensitivity atribute
  3. Restart the PC
  4. Usefsutil.exe file SetCaseSensitiveInfo YourDestinationFolder enable to enable case-sentivity

This could make the file case sensitive and solve the build problem.