又是这个错误提示。不过这次的情况有点特别。
同事在一个接过来维护的工程中添加cocoapods第三方库管理,添加AFNetWorking。之后我copy下来本地,是能正常使用的
我们先看看此时的设置
但是当我使用AFNetWorking的时候,问题就出现了。(先用pod install一下)
<code class="hljs applescript has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">[!] The `Amway_boku_iphone [Debug]` target overrides <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> `OTHER_LDFLAGS` build setting defined <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> `Pods/Target Support Files/Pods-Amway_boku_iphone/Pods-Amway_boku_iphone.debug.xcconfig'. This can lead <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> problems <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> CocoaPods installation - Use <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> `$(inherited)` flag, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">or</span> - Remove <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> build settings <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> target.</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>
首先install的时候提示这个警告。
要求我们在Build Settings ——Linking——Other Link Flags 添加$(inherited)
设置完之后,再pod install 一次,这次就没提示了
import AFNetWorking的头文件
接着就报错
<code class="hljs vhdl has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">ld: <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">library</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> found <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> -lAFNetworking</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
打开Build P’hases ——Link Binary With Libraries
我们发现是没有AFNetworking这个Lib的。然而AFNetWorking根本就没这样一个Lib需要引用。而我发现这里面有一个.a文件没有引用到
这时候,真机是可以运行的。模拟器不能运行。同时,真机运行之后,上面的.a文件生成了。
我们还可以发现里面有libAFNetWorking.a。缺失的文件可能就是这个。
真机可以,模拟器不行,有可能就是编译指令集区别的问题了。这时候想到了上面提到的Build Active Architecture Only。将debug设置成(release我试过可以成功打包出来,应该release没有问题)YES之后,编译成功。之后再将debug设置成NO,也不再报错了。。。
如果在设置YES之前,将Valid Architecture 设置成只有arm64时,也可以build成功。这个估计是AFNetWorking不支持32位了???
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。