xCode 7 error: include of non-modular header insid

2019-02-11 22:45发布

问题:

I updated to xCode 7.1 today and tried to build my app but I'm getting this error:

I have already tried going to Build Settings under "Target" and set "Allow Non-modular Includes in Framework Modules" to YES but that didn't solve this issue.

UPDATE: Since this was preventing me from compiling and hindering my progress in terms of development, I recommend you download an older version of xCode from Apple (https://developer.apple.com/downloads/ make sure to login). You can download version 7.0.1 from the link and at least continue development.

This is what I've done and I can continue development.

I know this is not a fix, but its workaround for the people who wish to continue development.

回答1:

Google has updated its SDK to 1.10.5, Just Reinstall Pod and it should work fine. I was facing same issue and now all issues are fixed after pod reinstallation.



回答2:

I ended up having to create an Objective-C bridging header file and adding #import <GoogleMaps/GoogleMaps.h> whereas I hadn't needed one previously since I was using Cocoapods in a Swift project and the use_frameworks! setting had previously taken care of this.

Here's instructions for how to create the Objective-C bridging header file: (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html)



回答3:

https://forums.developer.apple.com/thread/23554

Just remove the header search paths in build settings. In new Xcode versions (after 7.0 I guess) you need to look for the headers by linking frameworks and not by linking header files directly.



回答4:

For me, this issue was resolved by:

  1. Product > Clean (cmd k)
  2. Product > Clean Build Folder (cmd opt k)
  3. Product > Run (cmd r)


回答5:

This thread may be useful.

I tried a few things, but I'm not positive which one fixed the issues. First, I edited my Podfile to include:

post_install do |installer|
    installer.pods_project.build_configuration_list.build_configurations.each do |configuration|
        configuration.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
    end
end

Then, I added a bridging header file, with one line:

#import <GoogleMaps/GoogleMaps.h>

Cleaned and rebuilt the project and that did the trick.