升级Xocde10,真机调试,报错ld: library not found for -licucore,模拟器编译正常,求大神解答???
报错ld: library not found for -licucore是因为Xocde10里面的文件丢失,要进行修复更改设置。步骤如下:
1、首先第一步要从xcode9中拷贝这几个库到xcode10, 路径如下
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib/。
2、接着就是要打开 IDETextKeyBindingSet.plist ,注意的是要用 Sublime Text 或者 Vim 都可以。添加一个新的字典成员。
<key>Custom</key><dict><key>Delete Current Line In One Hit</key>
3、接着就是拷贝以前Xcode的缺失的 libstdc++、libstdc++.6、libstdc++6.0.9 到新的SDK下。
分别复制对应的Lib文件到下面的路径即可解决Xcode编译报错。
4、接着就是找到 Delete Current Line in One Hit双击 Key,注意的是要设置为⌘+D即可。
5、然后就是保存并重启 Xcode。打开Xcode Preferences or ⌘+,然后点击 Key Bindings这时候要在搜索框中输入 Delete。
6、最后一步就是设置完成之后,回到桌面重新打开升级的Xocde10,这时候可以发现可以正常工作了。
分析原因:
原因是由于未找到库文件。你们应该在项目中使用了一些第三方的库,如百度的静态库。当Xcode编译的时候却找不到这个库,所以要让Xcode知道这个库文件在哪里,这样在编译的时候就可以轻松的找到库了。
解决方法:
获取 库文件所在的文件路径 ,添加到Target的Build Settings界面即可
若上述方法未能解决,以下共有3种方法
方法一:点击 XCode 工程文件,在 Build Phases 中查看 “ Link binary With Libraries” 如果不出所料,你应该能发现有一到数个的条目是用红色字体来显示的。 说明这些被工程引用的这些文件,其物理文件已经不处于之前所记录的地方了。 这种情况下,右键点击红色条目,选择 “Reveal in Project Navigator”, 此时大抵能在左侧栏中定位到缺失文件所在的路径,接下来就好办了,找到缺失的文件,挪回它应该待的地方。
方法二: 在工程的 Target 中选中要执行编译的某个target, 然后 “get info”,打开 Build 设置页面,在 “ Library Search Path” 中添加缺失链接库的所在文件夹的路径。
方法三:关闭Xcode,在控制台打开到工程目录,用pod install 命令重新安装,成功后再打开Xcode编译项目。
总结1:library not found for -XXX 的问题有可能是你的某个库的连接引用有问题,解决的办法就是在项目的target里,选中Link Binary With Libraries 里的.a或framework 取消再加入,就可以了。
常见问题的处理方法