美文网首页程序员
iOS记一次坑爹的报错

iOS记一次坑爹的报错

作者: 芥末味儿 | 来源:发表于2018-08-02 21:51 被阅读161次

    今天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记一次坑爹的报错

        本文链接:https://www.haomeiwen.com/subject/mbejvftx.html