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.2Ios9 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:
-
Select your
[projectName]
in Xcode TARGETS. -
Go to Build Settings tab.
-
Make sure that the filter is set to "All" and not "Basic".
-
Search "Header Search Paths"
-
Double click and add this path to both "Debug" and "Release":
$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include
-
Now clean the Project and restart Xcode.
-
Able to make the Build and Archive.
-
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)
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
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
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
- In your Xcode project settings select TARGETS
- Within TARGETS select the Build Settings tab
- In the sub-options under the Build Settings tab be sure to select All
- Scroll down to the Search Paths section
- Locate Header Search Paths
- Add the following configuration to the Release option (as a new value on its own line):$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include
- Clean the project: Command + Shift + K
- 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):
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.