由于自己的手機(jī)系統(tǒng)現(xiàn)在是12+的,使用xcode10以下打包出來的ipa不支持12以上的系統(tǒng),所以升級了一下蘋果電腦的系統(tǒng)和Xcode数初,電腦系統(tǒng)為10.13.6,Xcode版本是10.1的。
復(fù)制之前的項(xiàng)目工程蹲嚣,然后執(zhí)行cordova platform rm ios
移除項(xiàng)目工程递瑰。
接著創(chuàng)建項(xiàng)目工程cordova platform add ios
。
走到這步還是沒有問題的隙畜。雙擊myapp.xcodeproject
Xcode抖部。然后選擇好team后build,出現(xiàn)了錯(cuò)誤。
錯(cuò)誤1
symbol(s) not found for -lstdc++.6
error: linker command failed with exit code 1 (use -v to see invocation)
這個(gè)錯(cuò)誤的原因是Xcode10.1中的庫里沒有-lstdc++.6议惰。
解決辦法參考https://www.cnblogs.com/liuyongfa/p/9705919.html
具體如下:右擊之前版本的Xcode顯示包內(nèi)容慎颗,
1.真機(jī):進(jìn)入目錄(這里進(jìn)入目錄是xcode右擊->查看包內(nèi)容)Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/lib
,把里面的libstdc++.6.0.9.tbd
拷貝到Xcode10的相同的目錄里言询,然后右擊制作替身俯萎,命名為libstdc++.6.tbd
。clear然后重啟Xcode运杭。
2.模擬器:類似夫啊,只是目錄不同,進(jìn)入之前版本的目錄Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib
辆憔,
把里面的libstdc++.6.0.9.dylib
拷貝到Xcode10的相同的目錄里撇眯,然后右擊制作替身,命名為libstdc++.6.dylib
虱咧。clear然后重啟Xcode熊榛。
之前Xcode版本的libstdc++的githhub地址:https://github.com/liuyongfa/libstdc.git
錯(cuò)誤2
Undefined symbols for architecture i386:
"operator delete[](void*)", referenced from:
+[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil NsDataEncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil DecodeWithBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil DecodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
"operator new[](unsigned long)", referenced from:
+[WeChatApiUtil EncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil NsDataEncodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil DecodeWithBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
+[WeChatApiUtil DecodeBase64:] in libWeChatSDK.a(WeChatApiUtil.o)
symbol(s) not found for architecture i386
error: linker command failed with exit code 1 (use -v to see invocation)
解決方法參考https://blog.csdn.net/azhou_hui/article/details/18312047
找不到WeChtApiUtil.o
在庫里面添加libc++
即可
其實(shí)中間遇到的問題不止這兩個(gè),問題沒有解決前感覺是繞在了里面腕巡,但是學(xué)會的一點(diǎn)是看報(bào)錯(cuò)內(nèi)容玄坦,一定要仔細(xì)分析報(bào)錯(cuò)的內(nèi)容,基本上看懂了報(bào)什么錯(cuò)绘沉,再去解決就清晰很多了营搅。