可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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
回答1:
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.
回答2:
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)
回答3:
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)
回答4:
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
回答5:
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
回答6:
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...
回答7:
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
回答8:
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!
回答9:
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.
回答10:
Also set ENABLE BITCODE = NO in the Build Settings
回答11:
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
回答12:
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
回答13:
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.
回答14:
- 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):
回答15:
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"
回答16:
Uninstall And reinstall Cordova Platform
cordova platform rm ios
cordova platform add ios
回答17:
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