Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cordova app failing to Archive with Xcode 7.1 (Cordova/CDVViewController.h file not found)

Tags:

xcode

ios

cordova

I've recently updated my Xcode to version 7.1 (from 7.0.1) and my Cordova app is failing to Archive with the error that says:

'Cordova/CDVViewController.h' file not found

in MainViewController.h file.

Searching through solutions on StackOverflow and elsewhere suggests that setting the project's Header Search Path from "$(OBJROOT)/UninstalledProducts/include"to "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" seems to solve the issue for a lot of people. However, this did not resolve the issue for me.

Is there anything that could be amiss? I never encountered a problem like this prior to updating Xcode.

Associated screenshot: Notice the Header Search Paths for both Debug and Release

UPDATE: It seems like updating my Mac OS X to El Capitan might have fixed this problem as I no longer get it. At the time of posting this question, I was on Yosemite. Hope this helps anyone encountering the same issue

like image 672
GoldenD Avatar asked Oct 27 '15 22:10

GoldenD


4 Answers

This is the solution!

Add this line to your Build Settings -> Header Search Paths:

"$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"
like image 109
Franc Avatar answered Nov 14 '22 23:11

Franc


This is a problem with 7.1 check out this thread which may help (on the ionic forums but isn't an ionic specific issue, it's Cordova with XCode 7.1) http://forum.ionicframework.com/t/cordova-cdvviewcontroller-h-file-not-found-in-xcode-7-1-beta/32232

like image 29
Simon Prickett Avatar answered Nov 15 '22 00:11

Simon Prickett


I found this solution at http://forum.ionicframework.com/t/cordova-cdvviewcontroller-h-file-not-found-in-xcode-7-1-beta/32232:

Add this line to your Build Settings -> Header Search Paths:

"$(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.

but doesn't work for old Cordova versions. I cannot upgrade to recent version of Cordova, so after a little try&search approach I found a new solution that seem works on my environment:

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

Same advice as before, don't replace the existing line, but append the new role at the end.

Hope this should be useful.

like image 35
druid Avatar answered Nov 15 '22 00:11

druid


I found a solution on this thread which worked for me with Xcode 7.1 (I was still having problems on OS X El Capitan).

Gandhi's answer is:

  • Run this in your terminal: cordova platform update ios
  • Open your project in Xcode
  • Go to Preference -> Locations -> Advanced
  • Choose "Unique" as the option for Build Location
  • Product -> Clean
  • Product -> Build
like image 31
wumbo Avatar answered Nov 15 '22 00:11

wumbo