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

19

71

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

Lacey answered 31/12, 2015 at 12:34 Comment(0)
F
239

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.

Foretaste answered 31/12, 2015 at 12:42 Comment(6)
This is the correct answer. Also worth noting: The build settings tab defaults to the 'Basic' filter. Make sure that 'All' is selected or you won't see the Header Search Paths field.Breannabreanne
I see this answer thrown about a lot, but my project already has this exact same string as part of the search header paths but the file is still not found. :-(Pellikka
Don't forget to add this to all pahts, Release, not only Debug. I first only added to Debug and missed Release and it didn't help. Adding to Release fixed the issue. Thanks!Verrucose
I had to also delete the old one: $(OBJROOT)/UninstalledProducts/include Then the Archive would run. Not before.Imprescriptible
For those that don't remember the shortcut to clean your project, press Shift-Cmd-KParaselene
FYI I didn't need to do a clean build or restart XCode.Emlynn
B
69

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: Cordova app failing to Archive with Xcode 7.1 (Cordova/CDVViewController.h file not found)

Bissonnette answered 4/8, 2016 at 2:46 Comment(4)
Thanks. I have Xcode Version 7.2 and this fixed my issue.Kutzenco
Oddly enough, this seems to make this worse for me. I have to remove ios and then add it again before I can get rid of the addition xcode errors.Botanist
This fixed my issue with cordova 7.1 and the inappbrowser plugin which uses CDVViewController.h; github.com/purplecabbage/GDCordova/blob/master/docs/…Pernambuco
This fixed my issue with Xcode 10.2 and Cordova 6.0.0.Typehigh
S
7

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
Saransk answered 11/5, 2016 at 8:13 Comment(0)
D
6

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)

Drusilla answered 11/3, 2016 at 18:35 Comment(0)
D
5

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

Damiandamiani answered 24/11, 2016 at 9:35 Comment(2)
I've tried all other changes in build config, but finally with this my project could be installed on a real deviceAlonzoaloof
I tried all the above changes too, and NONE of them worked; I had upgraded from an ancient version of Xcode (back when it worked with my iPod),to the now version 8.3, and all the paths that needed to be added above, were already in the debug and the release, but it still could not find them; adding Unique worked, woohoo, thank you!Armbrecht
T
3

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

Tentative answered 10/3, 2016 at 10:22 Comment(0)
N
3

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...

Narton answered 24/9, 2016 at 20:51 Comment(2)
If you have spaces in a path you can add quotations around it "$(SOME_VAR)some path/with spaces"Botanist
Thanks @Jacksonkr. Not sure if I didn't try that (which is obvious, but quite useful) or if the path was so long I got lost in it. Still a great remark, though, thanks.Narton
J
2

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!

Jorie answered 3/12, 2016 at 12:45 Comment(1)
I did steps 1-3 and it worked for me. I'm wasn't sure where to do step 4.Hyperaesthesia
R
1

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.

Rang answered 10/3, 2017 at 14:48 Comment(0)
E
1
  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

Elexa answered 3/5, 2018 at 10:36 Comment(0)
O
1

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

Overweary answered 22/1, 2021 at 9:0 Comment(0)
D
0

Also set ENABLE BITCODE = NO in the Build Settings

Dildo answered 29/2, 2016 at 23:49 Comment(0)
D
0

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

Dyak answered 18/8, 2016 at 18:12 Comment(1)
I dare say this has less to do with removing the icon and more to do with remove/add of iosBotanist
H
0

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

Hypaethral answered 20/1, 2017 at 17:40 Comment(0)
Y
0

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.

Yvoneyvonne answered 19/2, 2017 at 2:51 Comment(0)
A
0

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"
Antisepticize answered 27/7, 2018 at 2:2 Comment(0)
U
0

Uninstall And reinstall Cordova Platform

cordova platform rm ios

cordova platform add ios
Unbend answered 16/8, 2018 at 15:28 Comment(0)
G
0

I encountered this kind of problem.

 'Cordova/CDVJSON_private.h' file not found

solution: click: Pods -> Cordova -> build phase -> Headers, and then move all of the items into public tab.

Ganymede answered 17/10, 2022 at 8:56 Comment(1)
Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.Beefy
D
-1

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

Digitalize answered 25/8, 2016 at 22:1 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.