Xcode 7.2:在“存档”中:解决问题:“找不到Cordova / CDVViewController.h文件”。虽然在构建应用程序时没有此类问题


71

在iOS中,我更新了7.2。我可以毫无问题地将现有项目构建到设备上。但是,当需要归档项目以准备提交到应用商店时,我遇到了构建错误-找不到Cordova / CDVViewController.h文件。我经历了几乎所有未找到的Stack Overflow和Google的修复程序/变通办法,但都没有一个适合我。如果我回到Xcode 6.4,则可以毫无问题地构建和存档,但是由于它运行的是iOS 9.1,因此无法构建到我的设备。

我猜这是新的Xcode版本设置在某处的配置问题。还有其他人遇到吗?同样,通常的可疑对象(“首选项”>“位置”>“派生数据”>“高级”>“唯一”),标头搜索路径等似乎都不错。

谢谢,Adisheshu

Answers:


233

由于搜索路径/包含,此问题似乎出现在Xcode 7.2中。

通过以下方式解决此问题:

  1. [projectName]在Xcode TARGETS中选择您的。

  2. 转到构建设置选项卡。

  3. 确保将过滤器设置为“全部”,而不是“基本”。

  4. 搜索“标题搜索路径”

  5. 双击并将此路径添加到“调试”和“发布”中: $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

  6. 现在清理项目并重新启动Xcode。

  7. 能够进行构建存档

  8. 就这样。


5
这是正确的答案。另外值得注意的是:“构建设置”选项卡默认为“基本”过滤器。确保已选择“全部”,否则您将看不到“标题搜索路径”字段。
jmknoll '16

18
我看到这个答案很多,但是我的项目已经将这个完全相同的字符串作为搜索头路径的一部分,但是仍然找不到该文件。:-(
simbolo '16

3
不要忘记将其添加到所有Pahts版本中,而不仅仅是Debug。我首先只是添加到Debug中,而错过了Release,它并没有帮助。添加到发行版解决了该问题。谢谢!
wojjas

2
我还必须删除旧的文件:$(OBJROOT)/ UninstalledProducts / include然后存档将运行。没过
pdschuller '16

4
对于那些不记得清理项目捷径的人,请按Shift-Cmd-K
pbojinov

69

在尝试所有解决方案均未成功后,我运行了:

cordova platform update ios

这为我解决了。(XCODE 7.3.1,Cordova 6.3.0)

参考: Cordova应用程序无法使用Xcode 7.1存档(未找到Cordova / CDVViewController.h文件)


谢谢。我有Xcode版本7.2,此问题已解决。
Ishara Amarasekera '16

奇怪的是,这似乎使我更糟。我必须先删除ios,然后再添加它,然后才能摆脱其他xcode错误。
杰克逊(Jacksonkr)

这解决了我的cordova 7.1和使用CDVViewController.h的inappbrowser插件的问题。 github.com/purplecabbage/GDCordova/blob/master/docs/…–
Lothre1

这解决了Xcode 10.2和Cordova 6.0.0的问题。
Vadim

7

如果添加此行:

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

到headers-search-path(如“ im3r3k”答案中所述)并没有解决此问题,请对此进行设置:

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

6

您应该将项目的Cordova iOS版本更新为3.9.2(16年3月11日的最新版本)。使用3.8.0时出现了同样的错误,并且在3.9中已修复。

或者,您可以升级到Cordova iOS v4.1.0(截至3/11/16时出现出血),但请注意您失去了对iOS 6和7的支持,并且cordova-plugin-screen-orientation尚未更新为使用4。因此您必须将应用锁定为纵向或横向。

编辑:

您无需升级即可在XCode中手动修复此问题。去

构建设置->标头搜索路径:更改:

$(OBJROOT)/UninstalledProducts/include

至:

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

apache.org上的相关问题


4

这为我解决了:

  • 在Xcode中打开您的项目
  • 转到首选项->位置->高级
  • 选择“唯一”作为“构建位置”的选项
  • 产品->清洁
  • 产品->构建

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


1
我已经尝试了构建配置中的所有其他更改,但最终,可以将我的项目安装在真实设备上
iflorit

1
我也尝试了上述所有更改,但没有一个起作用。我已经从旧版本的Xcode(当它与iPod一起使用时)升级到了现在的版本8.3,上面需要添加的所有路径已经在调试和发行版中,但是仍然不能找到他们; 加入独特的工作,woohoo,谢谢!
神奇队长

3

我也遇到了这个问题,但对我来说,添加标题搜索路径还不够。我已经将CDVViewController.h添加到子项目CordovaLib.xcodeproj的“ public”部分中-> CordovaLib(target)->构建阶段->标头-> Public


3

对我来说,$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include它已经在标题搜索路径中(使用El Capitan中的XCode 8)。然后,我将“文件夹的特定路径添加到“用户标题搜索路径”中CordovaLib,并recursive启用了选项(对于像我这样的经验不足的XCode用户,请在树状视图(第一个节点)中选择项目,以查看“构建设置”!)

但是要注意空间!丢失大量内容后,只需将文件夹从查找器窗口中拖出,然后将其填充为$(SRCROOT)/..(续),这是意料之中的,但确实可行。

同样,在XCode/Preferences/Locations/Custom Paths我中,以相同的方式添加了一个CORDOVALIB名称,该名称与以前的文件夹相同(这次,使用完整路径,没有任何$(SRCROOT)内容)。

花了我几个小时才弄清楚...


1
如果你有一个路径的空间,你可以在其周围添加报价"$(SOME_VAR)some path/with spaces"
Jacksonkr

谢谢@Jacksonkr。不知道我是否没有尝试过(这很明显,但是非常有用),或者路径太长了我迷路了。不过,还是要说的很感谢。
贝尔纳多·达·科诺

2

上述解决方案对我不起作用。

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

而已!


我做了第1-3步,它对我有用。我不确定在哪里执行第4步
网站

1

我正在使用xcode 7.3,但遇到了同样的问题。在我的情况下,该错误是由于执行“ cordova platform add ios”时发生了一个错误,由于在res文件夹中找不到图像而发生了一个错误,这避免了cordova platform add ios正确完成。


1
  1. 在您的Xcode项目设置中,选择TARGETS
  2. 在“目标”中选择“构建设置”选项卡
  3. 在“构建设置”选项卡下的子选项中,请确保选择“全部”。
  4. 向下滚动到“搜索路径”部分
  5. 找到标题搜索路径
  6. 将以下配置添加到“发布”选项中(作为自己的新值):$(OBJROOT)/ UninstalledProducts / $(PLATFORM_NAME)/ include
  7. 清理项目:Command + Shift + K
  8. 重新启动Xcode

下面的屏幕快照演示了在执行步骤1至6后您应该在Xcode 7.2中看到的内容(蓝色突出显示的行显示了已添加的配置): 在此处输入图片说明



0

我有同样的问题,所以我只是<icon src="icon.png" />从配置文件中删除。然后我使用cordova platform remove ios然后删除并添加了IOS平台cordova platform add ios


3
我敢说这有少做删除的图标,更与删除办/添加的ios
Jacksonkr

0

对我来说,以下工作

Xcode 8.1 iOS 10.x

(目标->构建设置->标头搜索路径)

“ $ {PODS_ROOT} / Cordova / CordovaLib / Classes / Public”

“ $ {PODS_ROOT} / Headers / Public”文件夹为空


0

当我删除并重新添加该项目时,我遇到了这个问题,找不到图标或启动屏幕等某些资源文件使该项目根本无法创建。


0

CDV.h文件位于CordovaLib / CordovaLib.xcodeproj / public中。您可以提供这条路,为我工作。

我不知道如何给相对路径。所以,我拖/下降的文件,并把它""#import这样的:

#import "dragged file full path"

0

卸载并重新安装Cordova Platform

cordova platform rm ios

cordova platform add ios

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.