记一次IOS错误解决
报错的情况:导入.a文件就会编译不通过。
这个错有可能是SDK资源重复了,猜测是这样。然后实际和这个也有点关系但不是主要报错情况。
解决办法借鉴这个大佬的。https://www.jianshu.com/p/9f9c1fd2e8b5?tdsourcetag=s_pctim_aiomsg
其实就是这个导入第三方库的地址错误了
导入第三方库
将自己创建好的测试库libzh enLib.a
和zhenFW.framework
分别导入项目当中对应得文件夹,后Search Paths 变化示意图:
从图中可以看出Library Search Paths中Xcode自动添加好库的路径,但是Framework Search Paths中没有任何的变化。编译项目之后,会有一个错误ld: framework no found zhenFW
:
错误的原因是:zhenFW 已经导入到了项目当中,但是没有找到它的路径。通过猜想可以知道libzhenLib.a
库没有报错并且Library Search Paths
有它的库的路径,那么可能zhenFW报错的原因是Framework Search Paths
中没有配置它的路径,下面咱们来配置它的路径来测试问题是否解决来验证我们的猜想的正确性。
配置zhenFW路径:首先点击Framework Search Paths
展开添加路径的框,然后将zhenFW.framework
拖拽到上面展开的框里面。拖入之后的示意图为:
拖到里面之后生成的路径为:"$(SRCROOT)/../Frameworks/zhenFW/zhenFW.framework"
,然后编译项目之后,还是报原先的错误。
报错原因:Framework Search Paths
重点在Paths,是路径!但Xcode生成的路径是一个文件的路径,而不是目录的路径,将默认生成的修改为:"$(SRCROOT)/../Frameworks/zhenFW/"
,编译成功!
说明:
- 正常导入库的时候Xcode会默认生成库的路径,但是有时候会没有生成,这时就需要差错,并且手动去解决、删除后重新导入以及查找该库的使用说明。
- 如果在测试的时候,路径生成正常的话,可以自己手动删除一个来测试
- 文件夹路径和文件路径
链接:https://www.jianshu.com/p/9f9c1fd2e8b5
关于( linker command failed with exit code 1)这个报错还有好几种情况
列举一下
1.资源未导入会报错,这种情况就是有些第三方资源没有导入了
2.资源重复也会报这个错,这时候需要你自己细心查找了
3.还有一个经典的这个报错,导入第三方资源含有.M文件的,升级XCODE 9.0后出过这个问题。解决办法是下图指向位置添加第三方资源的.m文件,或者.C文件
还有些其他的问题就要看具体情况了,这是我遇到过的神奇问题,困扰了一天。以此记录一下。