iOS开发之升级Xcode10.1 项目错误记录(持续填坑中…...)

时间:2024-04-12 12:05:08

iOS开发之升级Xcode10.1 项目错误记录(持续填坑中…...)一直没有更Xcode10.1,每次上传都提示下不为例,得过且过的我终于熬不住啦,2019年3月苹果不再容忍没有更新Xcode10的开发者,从3月起将不能用Xcode9、Xcode10.0 打包ipa(官方这么说的,其实我试了是可以的)不过审核方面就不清楚啦,但我还是更新了吧,下面是我更新后填的一些坑。

1. ld: library not found for -l stdc++.6.0.9

错误原因:
Xcode10中已去除这个stdc++.6.0.9这个库。报这个错一般是项目中有用到stdc++.6.0.9

解决方案:

方案一.移除依赖stdc++.6.0.9的第三方SDK(对于大项目来说不太现实)

方案二.从Xcode9 中复制一份stdc++.6.0.9库添加Xcode10

我从Xcode9提取了一份,下载地址:https://download.csdn.net/download/jackjia2015/11044844(链接骗点积分,没有的留邮箱)

iOS开发之升级Xcode10.1 项目错误记录(持续填坑中…...)
注:压缩包中有两个压缩包,一个是真机运行需要的Xcode的libstdc++.6.0.9.tbd.zip,一个是模拟器的libstdc++.6.0.9.tbd运行需要的。解压后放入相应位置即可

真机运行库

(1)打开终端
iOS开发之升级Xcode10.1 项目错误记录(持续填坑中…...)

(2)输入

open /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib

(3)此时会自动打开lib文件夹,拖入解压后的libstdc++.6.0.9.tbd(注意是解压Xcode的libstdc++.6.0.9.tbd.zip后的文件libstdc++.6.0.9.tbd)

模拟器运行库

(1)打开终端
iOS开发之升级Xcode10.1 项目错误记录(持续填坑中…...)

(2)输入

open  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib

(3)此时会自动打开lib文件夹,拖入解压后的libstdc++.6.0.9.tbd(注意是解压模拟器的libstdc++.6.0.9.tbd.zip后的文件libstdc++.6.0.9.tbd)

注:如果终端打不开就按照路径去找就行,应用程序–Xcode.app(打开包文件)-- Contents – Developer – Platforms – iPhoneSimulator.platform – Developer – SDKs – iPhoneSimulator.sdk – usr – lib

最后重启Xcode搞定



2.科大讯飞语音识别 iflyMSC.framework SDK报错

iOS开发之升级Xcode10.1 项目错误记录(持续填坑中…...)

ld: warning: directory not found for option
‘-F/Users/macbookpro/Desktop/TrafficManager/TrafficManager/Vendor/iflyMSC.framework’
ld: warning: directory not found for option
‘-F/Users/macbookpro/Desktop/TrafficManager/TrafficManager/Vendor/iflyMSC.framework’
Undefined symbols for architecture arm64:
OBJC_CLASSKaTeX parse error: Expected group after '_' at position 97: … "_OBJC_CLASS_̲_CNContactFetchRequest”, referenced from:
objc-class-ref in iflyMSC(IFlyContact.o) “_CNContactGivenNameKey”, referenced from:
-[IFlyContact fetchContactWithContactStore:] in iflyMSC(IFlyContact.o) “_CNContactFamilyNameKey”, referenced from:
-[IFlyContact fetchContactWithContactStore:] in iflyMSC(IFlyContact.o) ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)

错误原因:
iflyMSC.framework找不到与Contact相关的key。

解决方案:

项目 – Build Phases – 展开Link Binary With Libraries – 添加Contacts.framework