文档章节

Xcode莫名其妙问题could not build module 'Foundation'

yoyoso
 yoyoso
发布于 2015/05/07 14:59
字数 673
阅读 13298
收藏 1

今天用Xcode编译项目时,遇到一个莫名其妙的问题:could not build module 'Foundation',以及could not build module 'UIKit',NSString.h expect identifier问题,提示的位置是在Pod的库中。几经查找,才发现是自己一时的粗心。。。

遇到这个问题时,发现真机编译没有问题,然后编译其它项目时也提示类似的问题,最主要的是一个比较简单的项目编译时也会提示NSString.h expect identifier问题,突然警觉难道我不小心把NSString.h修改了?因为上午我的确打开过NSString.h文件。

但是从提示来看根本找不出问题的真实位置,于是我在另一台电脑上找到一份干净的NSString.h文件,与本机的NSString.h文件进行比较,就发现了问题所在:我把- (NSRange)rangeOfString:(NSString *)aString;这一行中的aString给删了。。

我说苹果你好歹也要给库文件加一个只读权限啊,害我苦苦寻找半天原因。不过,相对于那些把Xcode卸载再重新安装的,我算幸运了。

NSString.h文件路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSString.h


20150518更新:

另外一个看NSString.h文件是否被修改更简单的办法应该是打开NSString.h文件所在的文件夹,根据修改时间排序,如果NSString.h最近被修改过,肯定是NSString.h文件被修改了


别人总结的可能的原因:

可能性一:c,c++, oc兼容,就上楼上stackoverflow 的方法修改.pch就行了,或者还要在build parse里面将oc设置为oc++
可能二:照着错误提示有一项是@end缺少或者)缺少 ,编译器检测到由此提出的错误后20个左右就罢工了,见too many error emitted...
可能性二:UIKit库损坏或被修改(貌似ios5以上不能修改,一改就坏)  
                  解决一:通常通过删除moduleCache就可以了,这也是网上通常的做法。
                  解决二:我在本机上无论如果多次删除moduleCache都无效,最后是问同学拿了个.h文件(怀疑被修改的)覆盖后满血复活!
最后实在不行,无奈就彻底删除xcode,记住要彻底,不是直接拿去垃圾桶,网上很多教程,重装一个。
提醒哦,删除moduleCache要clean和reset模拟器一下。 

我想其中的最后一条彻底删除Xcode估计也是因为不小心修改了库文件吧


参考:

莫名其妙的错误:could not build module 'Foundation'

Could not build module 'Foundation' in Xcode 6

xcode 5.0.2 could not build module "Darwin"

© 著作权归作者所有

yoyoso
粉丝 49
博文 135
码字总数 47575
作品 0
南京
高级程序员
私信 提问
Duplicate Symbol链接错的原因总结和解决方法   

duplicate symbol是一种常见的链接错误,不像编译错误那样可以直接定位到问题的所在。但是经过一段时间的总结,发现这种错误总是有一些规律可以找的。 例如,我们有如下的最简单的两个类代码...

xiaobai1315
2016/06/02
608
0
iOS | 奇怪问题的处理方案

在开发中我们有时会遇到莫名其妙的问题,解决莫名其妙的问题自然会用到莫名其妙的方法,我总结了一下自己用过的那些方法: 1. Clean 2. 清除DerivedData 打开Finder的前往—>前往文件夹 输入...

无夜之星辰
2018/09/04
0
0
ld: symbol(s) not found for architecture i386

问题引出 在使用xcode运行cocos2d-x应用的时候发现出了这样的错误: Ld /Users/sjbwybls/Library/Developer/Xcode/DerivedData/MyGame-arludletzetwkseytsepwlnpmgtv/Build/Products/Debug-i......

花米
2013/08/23
1K
0
XCode6 生成prefix.pch文件

在Xcode6之前,新建一个工程的时候,系统会帮我们自动新建一个以工程名为名字的 pch (precompile header)文件,在开发过程中,可以将那些整个工程都广泛使用的头文件包含在该文件下,编译器就...

北方人在上海
2016/01/15
59
0
iOS - Swift 与 Objective-C 互相操作

https://www.cnblogs.com/QianChia/p/5777341.html#_label2 本文目录 前言 1、在 Swift 中使用 Objective-C、C 代码 2、在 Objective-C 中使用 Swift 代码 回到顶部 前言 在 Swift 语言中,我...

壹峰
2018/01/15
24
0

没有更多内容

加载失败,请刷新页面

加载更多

《JAVA核心知识》学习笔记 (19. 数据库)

19.1.1. 存储引擎 19.1.1.1. 概念 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、 更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧...

Shingfi
8分钟前
1
0
三分钟手操自己的yum源

本文章原创首发公众号:编程三分钟 上次就想手操yum源了,考虑到有的朋友没接触过,直接写成了yum源的科普,活活憋了我一个星期,现在我们快快开始。 什么情况下我们需要搭建一个仓库呢? 记...

编程三分钟
12分钟前
3
0
一起来学Java8(二)——Lambda表达式

Lambda简介 什么是Lambda表达式,简单的说是一种匿名函数表达方式。因此Lambda表达式本质是个函数,只不过没有函数名称。 Lambda表达式具有以下特点: 匿名,它没有函数名称 本质是个函数,除...

猿敲月下码
14分钟前
3
0
排序算法之希尔排序

1、介绍。 希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D...

daxiongdi
22分钟前
3
0
log4j2入门hello world

1.什么是log4j2 (1)log4j log4j是apache的一个开源项目,表示log for java.是一个日志工具,可以将日志信息输出到文件,控制台等其他地方 ,还可以定义日志的输出格式,另外还有日志级别的区分,可...

Blueeeeeee
24分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部