遇到事了
如题,这种错误一看就是属于.framework的依赖问题,看起来很简单,把这个包拖进项目里就可以了。但是我的项目是用CocoaPods管理的啊,Pod install的时候也没有报任何异常信息啊,检查下Pods文件夹下一切正常,像baidu找到的Other Link Flags,Search Path啥的都检查了,还是报错。GG~~~
find implicit Dependencies
截屏2020-03-0515.22.14.png最后在反选圈起来的这个设置之后,神奇的解决了问题。打破砂锅问到底,在这里找到了理论依据:
截屏2020-03-0515.12.20.png隐藏依赖
如果Target A需要另一个Target B的输出作为编译输入,那么A依赖于B。
如果这两个Targets正好在同一个Project或者Workspace下,Xcode会自动检测依赖。
不止自动检测,Xcode还会自动build 这个Target B,就为了给Target A一个新鲜的输出。
这一个功能,就叫做隐藏依赖。
...
这下就明白了,因为我的WorkSpace下有多个Project,Project A是一个Framework,同时我发布了一个0.5.0版本在CocoaPods上,当前最新的版本已经到了1.0了,很多Api已经重构没了。Project B就是我今天想要build的Framework,它需要依赖于A的0.5.0版本,尽管CocoaPods的相关内容一切正常,但是由于隐藏依赖的存在,Xcode始终会帮我找到那个1.0版本的A,所以会一直编译报错,怎么也解决不了。
$(inherited)
最后讲一下这个继承-Stackoverflow。在Other Link Flags里的设置可以选择继承自上层设置,避免重复写好多一样的,可以缺省吗,这个设计还是不错的。
有一个层级关系,在Build Setting里点下level可以看到,层级如下:
Resolved <- Target <- xcconfig <- Project <- iOS Default
iOS Default是最上层的,也就是祖宗类。
网友评论