XCode中常用错误解决

时间:2022-01-01 19:33:54

No such file or directory
    解决方法(可以依次尝试,总有一种能最终解决问题):
    
    方法1.退出Xcode,然后从finder里面进入~/Library/Developer/Xcode/DerivedData 删掉里面所有的内容,然后重启Xcode试试看
    
    
    方法2.上面的操作也可以直接在Xcode的organizer中完成,在organizer里面切换到projects,然后delete掉derived data
   
    在target设置中删掉Prefix Header的值,重启Xcode试试看    
    最后恢复Prefix Header的设置
    
    方法3:
    
    还是在Xcode里面
    
    项目-targets-build phases,
    
    然后从copy bundle resources里面删掉红色的错误资源文件

No such file or directory
问题描述
 Undefined symbols for architecture i386:
“_OBJC_CLASS_$_XXX”, referenced from:
objc-class-ref in XXX
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
当拷贝文件到工程里的时候,若不注意勾选"Add to Target",运行时会报如下类似的错误
    解决方法:
    先点击方案(左边列表,点击方案的图示)
    选择target
    选择页签Build Phases
    Compile Source
    如果没展开的话先展开
    向下找加号,点击加号,将这个target需要的.m档案的头文件都加入
   (如果只有一个 就把左右的.h档案都加入)

Undefined symbols for architecture armv7s

armv7s是IOS框架指令集,下面列举了IOS的硬件适配对应关系:
   armv6:iPhone 2G/3G,iPod 1G/2G
   armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G
   armv7s:iPhone5

一般真机测试时,如果报armv7s错误,一般都是因为armv7s指令集是打开的,而之前一些引用库都是使用armv7s之前的指令集编译的(当这些引用的外部库使用armv7s指令集编译后,就不会出现该问题)。
   解决办法如下1,2都可以:
   1,[去掉armv7s指令集支持]xcode-->"Build Settings"-->"Valid Architectures"中把armv7s去掉(可能使程序无法适配iPhone5)。
   2,[兼容armv7s]PROJECT-Build Setting,然后把Build Active Architecture Only的值设置为Yes。