iOS记一次坑爹的报错

今天pod install 了一个第三方库,然后command+B就出现了下面的报错信息,莫名其妙,之前真机运行一点问题没有。。。

ld: warning: ignoring file xxxxxx.a, missing required architecture x86_64 in file xxxxx.a (2 slices)

Undefined symbols for architecture x86_64:

  "_OBJC_CLASS_$_xxxxx", referenced from:

      objc-class-ref in xxxxx.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

报错的.m文件中导入了另个一第三方静态库的头文件,但是两个库根本没有关联不存在重复导入的问题。

那么就只好去搜索"linker command failed with exit code 1" 网上一大堆解决办法,挨个儿试

1、说文件重复添加的,以防万一那我们去项目里搜索一下,确实只有一个 pass

如果出现重复添导致的该报错就去找Build settings->Linking->Other Linker Flags

把里面的属性改为-all_load  或者 -ObjC

2、说导入的静态库.a文件路径出错

到Build settings->Search Path->Library Search Paths 下面重新修改路径

command+shift+k  然后command+B 依然报错

3、找到报错的.m文件勾选 Target Membeship 下面的项目名

前往.m文件 Target Membeship 下面的已经是勾选状态 (勾选之后第二点中提到的路径,Xcode会自动添加)

4、删掉项目中的.a文件重新添加,依然无效

emmmm。。。。可能搜索的关键词不对

重新搜索“ignoring file xxxxxx.a, missing required architecture x86_64 in file xxxxx.a (2 slices)”

结果中有提到.a文件对各种架构的支持情况。

打开终端,进入.a的文件目录,运行 lipo -info xxxxx.a

出现的信息只有armv7、arm64  

意思是只支持真机,再看我Xcode选择的是iPhone8模拟器,果断连上手机 Command+B这次没问题了。

第一次使用lipo命令,感兴趣的可以去网上搜一下,生成.a和.framework的都会用到这个命令

我也去学习一下。。。

你可能感兴趣的:(iOS记一次坑爹的报错)