为了账号安全,请及时绑定邮箱和手机立即绑定

iOS记一次坑爹的报错

标签:
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的都会用到这个命令



作者:芥末味儿
链接:https://www.jianshu.com/p/d3b4d2eec9a2


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消