Xcode 7.2: In “Archive”: Getting the issue: “Cordova/CDVViewController.h’ file not found ”. While there is no such issues in building the app

Ios9xcode7.2

Ios9 Problem Overview


In iOS, I update 7.2. I'm able to build my existing project to my device with no problem. When it came time to archive the project to prepare for submission to the app store, however, I'm getting a build error - Cordova/CDVViewController.h file not found. I've gone through just about every fix/workaround that I've not found Stack Overflow, and Google, and none of them have worked for me. If I go back to Xcode 6.4 I can build and archive no problem, but I can't build to my device now that it's running iOS 9.1.

I'm guessing it's a configuration issue somewhere with the new Xcode version setup. Has anyone else run into this? Again, the usual suspects (Preferences > Location > Derived Data > Advanced > Unique), Header Search Paths, etc. all seem to be fine.

Thanks, Adisheshu

Ios9 Solutions


Solution 1 - Ios9

This issues seems to appear in Xcode 7.2 due to search path/include.

Solve this in following way:

  1. Select your [projectName] in Xcode TARGETS.

  2. Go to Build Settings tab.

  3. Make sure that the filter is set to "All" and not "Basic".

  4. Search "Header Search Paths"

  5. Double click and add this path to both "Debug" and "Release": $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

  6. Now clean the Project and restart Xcode.

  7. Able to make the Build and Archive.

  8. That's All.

Solution 2 - Ios9

After trying every solution with no success I ran:

cordova platform update ios

This fixed it for me. (XCODE 7.3.1, Cordova 6.3.0)

Reference: https://stackoverflow.com/questions/33379291/cordova-app-failing-to-archive-with-xcode-7-1-cordova-cdvviewcontroller-h-file/33380045

Solution 3 - Ios9

If adding this line:

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

to the headers-search-path (as described in 'im3r3k' answer) didn't fixed this issue, also set this:

Build Settings -> Architectures -> Build Active Architecture Only -> YES

Solution 4 - Ios9

You should update your project's Cordova iOS version to 3.9.2 (latest version of 3 as of 3/11/16). I got this same error when using 3.8.0 and it was fixed in 3.9.

Alternatively, you could upgrade to Cordova iOS v4.1.0 (bleeding edge as of 3/11/16) but be aware you lose support for iOS 6 and 7, and cordova-plugin-screen-orientation isn't updated to use 4 yet so you have to lock your app in portrait or landscape.

EDIT:

Without upgrading you can fix this manually in XCode. go to

Build Settings -> Header Search Paths : Change:

$(OBJROOT)/UninstalledProducts/include

to:

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

(related issue on apache.org)

Solution 5 - Ios9

This fixed it for me:

  • Open your project in Xcode
  • Go to Preference -> Locations -> Advanced
  • Choose "Unique" as the option for Build Location
  • Product -> Clean
  • Product -> Build

Taken from https://forum.ionicframework.com/t/cordova-cdvviewcontroller-h-file-not-found-in-xcode-7-1-beta/32232/40

Solution 6 - Ios9

I also had this problem but for me adding path to Header Search was not enough. I have added CDVViewController.h to "public" section into subproject CordovaLib.xcodeproj -> CordovaLib(target) -> Build Phases -> Headers -> Public

Solution 7 - Ios9

For me the $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include was already in the Header Search Paths (using XCode 8 in El Capitan). I then added to User Header Search Paths the specific path to CordovaLib folder, with recursive option enabled (for unexperienced XCode users like myself, select the project in the tree view (1st node) to see "Build Settings"!!)

But watch out for spaces! After a lot of missings it was safer to just drag the folder from a finder window, and it filled as $(SRCROOT)/.. (cont.), which was not expected but did work..

Also in XCode/Preferences/Locations/Custom Paths I've added a CORDOVALIB name with the same folder as before, in the same manner (this time, the full path was used, without the $(SRCROOT) thing).

Took me quite some hours to figure all out...

Solution 8 - Ios9

The above solutions did not work for me.

In my case, when I build my iOS platform, CordovaLib folder was not included.
1. Delete existing CordovaLib.xcodeproj
2. Add existing files. Add CordovaLib.xcodeproj from CordovaLib folder
3. Add dependencies and select CordovaLib
4. Add link Binaries with library and select libCordova.a

Thats it!

Solution 9 - Ios9

I was using xcode 7.3 and I was having the same problem. In my case the error was due to an error that was happening when executing "cordova platform add ios", an error was ocurring because an image couldn't be found in res folder and this was avoiding cordova platform add ios to finish correctly.

Solution 10 - Ios9

  1. In your Xcode project settings select TARGETS
  2. Within TARGETS select the Build Settings tab
  3. In the sub-options under the Build Settings tab be sure to select All
  4. Scroll down to the Search Paths section
  5. Locate Header Search Paths
  6. Add the following configuration to the Release option (as a new value on its own line):$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include
  7. Clean the project: Command + Shift + K
  8. Restart Xcode

The following screenshot demonstrates what you should see in Xcode 7.2 after following steps 1 to 6 (the line highlighted in blue displays the added configuration): enter image description here

Solution 11 - Ios9

One of the issue in my case was the one plugin cordova-plugin-inappbrowser. Make sure your plugins are updated.

Solution 12 - Ios9

Also set ENABLE BITCODE = NO in the Build Settings

Solution 13 - Ios9

I had the same issue so i just removed <icon src="icon.png" /> from config file. then I removed&addded IOS platform using cordova platform remove ios then cordova platform add ios

Solution 14 - Ios9

For me following worked

Xcode 8.1 ios 10.x

(target -> Build Settings -> Header search paths )

"${PODS_ROOT}/Cordova/CordovaLib/Classes/Public"

as

"${PODS_ROOT}/Headers/Public" folder was empty

Solution 15 - Ios9

I faced this issue when I removed and re-added the project, some resources files such as icons or splashes screen not found made the project doesn't create at all.

Solution 16 - Ios9

The CDV.h file is present in CordovaLib/CordovaLib.xcodeproj/public. You can give this path and worked for me.

I don't know how to give relative path. So I dragged/dropped the file and put it in "" with #import like:

#import "dragged file full path"

Solution 17 - Ios9

Uninstall And reinstall Cordova Platform

cordova platform rm ios

cordova platform add ios

Solution 18 - Ios9

supplementing the response. Add

"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"

Don't replace the existing line that looks similar, that is still needed to be backwards compatible with Xcode 7 and Xcode 6.4.

click here

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAdisheshu RYView Question on Stackoverflow
Solution 1 - Ios9ArunDhwaj IIITHView Answer on Stackoverflow
Solution 2 - Ios9Dom HedeView Answer on Stackoverflow
Solution 3 - Ios9Gil EpshtainView Answer on Stackoverflow
Solution 4 - Ios9im3r3kView Answer on Stackoverflow
Solution 5 - Ios9mlesView Answer on Stackoverflow
Solution 6 - Ios9Andrew BogaevskyiView Answer on Stackoverflow
Solution 7 - Ios9Bernardo Dal CornoView Answer on Stackoverflow
Solution 8 - Ios9h3nView Answer on Stackoverflow
Solution 9 - Ios9Juan NogueiraView Answer on Stackoverflow
Solution 10 - Ios9Dinesh VaitageView Answer on Stackoverflow
Solution 11 - Ios9Inshal irshadView Answer on Stackoverflow
Solution 12 - Ios9dijipijiView Answer on Stackoverflow
Solution 13 - Ios9AlamriView Answer on Stackoverflow
Solution 14 - Ios9Chirag PurohitView Answer on Stackoverflow
Solution 15 - Ios9infinito84View Answer on Stackoverflow
Solution 16 - Ios9LakshView Answer on Stackoverflow
Solution 17 - Ios9umesh wooduView Answer on Stackoverflow
Solution 18 - Ios9Felipe LastowizkaView Answer on Stackoverflow