iOS初學之填坑總結
Bug(2019-4-1)
Linker command failed with exit code 1(use-v to see invocation)
為什麼會出現這樣的問題呢?
是因為在 Build Phases
下的 Compile Sources
中沒有把你專案中的.swift 檔案新增進入,怎麼會找的到(Link),怎麼能夠進行編譯呢?!所以,修改這個bug,只需要把你的專案中檔案新增進入就ok。
Bug(2019-4-2)
在使用xcode9.0整合HandyJSON的時候,安裝成功,編譯卻一直不會通過。使盡各種方法,最終還是給我嘗試到了。這裡分享一下我的經驗:
在我配置了cocoaPods之後,在Podfile檔案中做如下配置:
# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'
target 'Demo' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for Demo
pod 'Alamofire'
pod 'SwiftyJSON'
pod 'HandyJSON','4.1'
#pod 'HandyJSON', git: 'https://github.com/alibaba/HandyJSON.git' , branch: 'dev_for_swift5.0'
end
可以看到我在其中一共整合了三個函式庫:Alamofire
, SwiftyJSON
, HandyJSON
.
第一次使用的HandyJSON的版本是 'HandyJSON', '4.2.0'
然後是 'HandyJSON', '4.2.0-beta1'
安裝之後的編譯結果都會報錯。
錯誤內容是:Undefined symbols "_swift_getFieldAt"
這個在github上找到的原因是,函式庫自身在適配swift時的bug。
遇到問題了,當然要想法設法的去解決。然後進行百度搜尋,嘗試很多部落格中指出的方法,沒有成功。這時候一個上午已經過去了,下午也到15點了。沒辦法進github翻翻 issue 吧。也找了好多同樣問題的帖子。
解決方法一
解決方法二
都不管用,嘗試了高版本的HandyJSON幾個。由原來的舊問題,變成了新的問題。如下圖展示:
錯誤內容是:"_swift_getTypeByMangledNameInContext", referenced from:
有說使用高版本xcode進行適配。但是我的電腦又不支援太高的xcode版本。而且我突然想到這個HandyJSON之前的舊版本也一直在使用啊,而且在issue上提出了好多相關的問題。由此,我想到了試一試低版本的HandyJSON。然後就用了上面的pod 'HandyJSON','4.1'
果然就成功了。 所以,當有朋友遇到這種編譯問題(只針對初學者)可以嘗試一下各種版本進行試用!
Bug(2019-4-9)
一個XIB小問題讓我處理了2天,哈哈!問題就在於這裡:
第一次使用XIB畫圖的時候是ok的,只是後來修改了一下“大V的變數名”然後在對應的XIB中沒能同步修改,所以就報上面的錯誤。當然,從這個過程中學到的則是,如果去看列印的錯誤日誌。因為上面標註的很清楚:Terminating app due to uncaught exception NSUnKnownKeyException: this class is not key value coding-compliant for the key vipImageView .
Bug(2019-4-10)
引入第三方函式庫報錯,Value of type [UIView] has no member compactMap
是因為我直接引入了 pod 'IBAnimatable', '5.1.0'
根據官方,作出正確的解決方法
# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'
target 'Demo' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for Demo
pod 'Alamofire'
pod 'SwiftyJSON'
pod 'HandyJSON','4.1'
#pod 'HandyJSON', git: 'https://github.com/alibaba/HandyJSON.git' , branch: 'dev_for_swift5.0'
pod 'Kingfisher', '4.1.1'
# Pods for JNUHonorSchoolStudentPlatform
pod 'IBAnimatable', '5.0.0'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'IBAnimatable'
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '4.0'
end
end
end
end
Bug(2019-4-17)
- 偶遇壹
在使用xcode(9.0)進行XIB畫圖,編譯出錯
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: 'this class is not key value coding-compliant for the key avatarView.'
出現這個問題說明,拖到XIB的view在進行連線時候,1)連線不對;2)一個view被重複或者多次連線。都會出現上面的錯誤。
如果是出現的問題(2)會有很多個連線,在這裡進行刪除多餘的就好了。
- 偶遇貳
在使用代理的時候,自覺編碼沒問題,編譯出錯。且,猝不及防!
出錯展示:Ambiguous reference to member 'tableView(_:heightForHeaderInSection:
描述:為實現點選UiTableViewController
中自定義的UITableViewCell
下的UICollectionViewCell
進行跳轉的監聽。在UITableViewCell
定義了一個協議protocol。
此處錯誤的原因是,在UITableViewCell(MyFirstSectionCell)
定義了一個協議protocol(MyFirstSectionCellDelagate)
,協議的方法 MyFirstSectionCell 函式名稱和 自定義view的MyFirstSectionCell 的函式名稱一樣導致。
解決方法:修改協議函式名稱,避免和自定義view的類名稱一樣。
Bug(2019-4-28)
我的mac本,配置了vscode
執行react-native環境,和配置了xcode
編譯react-native的環境。平時使用終端命令在vscode,多編譯執行android平臺程式碼,對於ios都是在xcode中執行。但是為了更方便嘗試了都在vscode上進行編譯,但是第一次使用終端命令react-native run-ios
竟然出錯了!
錯誤內容:xcrun: error: unable to find utility "instruments", not a developer tool or in PATH
解決方法,在你已經安裝了XCode的前提下,在終端輸入命令:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/
Bug(2019-4-28)
No component found for view with name ARTShape
這個錯誤來的有點觸不及防,經過查詢解決辦法。得到解決!
當前react-native
使用的版本是 0.59.6 。但是使用腳手架生成的專案,在ios平臺並把ARTShape這個新增到專案的依賴中,導致app在執行到使用到ARTShape
的地方就出現了崩潰。
解決方案: 新增 node_modules/react-native/Libraries/ART/ART.xcodeproj
到LIbraries。
然後在從Libraries中的ART.xcodeproj/product
目錄下,拖拽libArt.a
到Link Binary With Libraries
中。
重新編譯執行即可!
Bug(2019-5-6)
react-native iOS平臺 配置頂象無感驗證之後,Achive 打包失敗。Failed to verify bitcode in DingxiangCaptchaSDK.framework/DingxiangCaptchaSDK: error: Cannot extract bundle
解決方案:將專案的 build Settings -> Build Options -> Enable Bitcode 設定為 no 解決了問題 , 打包成功!
相關文章
- Flutter填坑全面總結Flutter
- vue 填坑系列總結——scopedVue
- [iOS]貝聊 IAP 實戰之見坑填坑iOS
- 騰訊地圖開發填坑總結地圖
- iOS 小坑總結iOS
- html初學總結HTML
- ReactNative填坑之旅–與Native通訊之iOS篇ReactiOS
- Java填坑系列之LinkedListJava
- 填坑Ⅱ
- Flutter1.9升級體驗總結(幫大家填坑了)Flutter
- 填坑總結:python記憶體洩漏排查小技巧Python記憶體
- iOS 總結遇到的各種坑兒iOS
- 初學 PHP 總結建立物件PHP物件
- streamparse 填坑
- Flutter填坑指南,總有一個遇得到。Flutter
- 小程式的填坑小技巧之CanvasCanvas
- 小程式專案之填坑小記
- 微信小程式之逆地址解析填坑微信小程式
- 小程式踩坑填坑
- iOS初級開發學習筆記:APP生命週期的學習總結iOS筆記APP
- [貝聊科技]貝聊 IAP 實戰之見坑填坑
- 慕課網_《iOS基礎教程之介面初體驗》學習總結iOS
- Flutter 填坑整理Flutter
- vim 填坑之路
- Hibernate填坑
- Elasticsearch 填坑記Elasticsearch
- vue微信填坑Vue
- javascript 填坑史JavaScript
- React 填“坑”記React
- Date填坑記
- H5拍照上傳填坑彙總H5
- Linux爬坑之路(學習總結)Linux
- 支付開發填坑記之支付寶
- ES6個人初學總結-XY
- ios OC初學iOS
- 總結iOS 8和Xcode 6的各種坑iOSXCode
- ReactNative 之FlatList踩坑封裝總結React封裝
- iOS之UIWebView的坑iOSUIWebView