首先要說(shuō)下Cocoapods 的Podfile文件的格式問(wèn)題:
swift里引用必須要加入use_frameworks!
這句勺三,否則不能成功效览。因?yàn)闆](méi)有加這句它默認(rèn)生成的是.a文件示损,加了這句才會(huì)生成.framework 文件崭倘。
完整的格式:
platform :ios, '10.0'
use_frameworks!
target 'YourTarget' do
pod 'Alamofire', '~>4.0.0'
pod 'SwiftyJSON'
end
當(dāng)你Cocoapods會(huì)使用之后聊替,直接就引入第三方庫(kù)祥楣,特別是現(xiàn)在swift版本還不是很完善开财,可能會(huì)遇見(jiàn)一些問(wèn)題,下面我就說(shuō)一下我遇見(jiàn)的問(wèn)題及其解決辦法误褪。
當(dāng)你寫(xiě)完P(guān)odfile 文件责鳍, pod install 成功之后,去打開(kāi)工程文件.xcworkspace運(yùn)行, 這時(shí)候它一般會(huì)提示你更新到swift最新版本兽间,建議不要convert历葛,選擇“l(fā)ater”吧,因?yàn)槟慵词垢铝艘惨欢芡ㄟ^(guò)嘀略,可能報(bào)錯(cuò)更多恤溶。這是因?yàn)閟wift版本升級(jí),棄用的方法太多帜羊,不兼容導(dǎo)致咒程!
當(dāng)我引用網(wǎng)絡(luò)請(qǐng)求Alamofire 就出現(xiàn)了異常
假如報(bào)錯(cuò):
Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift.
Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.
大體意思是swift版本不兼容,讓你升級(jí)swift版本信息讼育。
解決方法:
1帐姻、首先檢查你的cocoapods是不是最新版本,
pod --version
查看下版本
如果不是最新版本窥淆,升級(jí)它
sudo gem update cocoapods
如果你遇見(jiàn)問(wèn)題或是不太會(huì)升級(jí)卖宠,可以參考:Swift - CocoaPods的安裝使用詳解這篇文章。
2忧饭、在Podfile文件后面追加下面的代碼:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
完整樣子:
platform :ios, '10.0'
use_frameworks!
target 'testSwiftCocaPods' do
pod 'Alamofire'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
在pod install 扛伍,成功之后在運(yùn)行。
3词裤、假如還報(bào)錯(cuò)刺洒,像下面的錯(cuò)誤:
ld: /Users/Qianhan/Library/Developer/Xcode/DerivedData/testSwiftCocaPods-fokbuwlqlljkizfhxdqvjgjqbtwe/Build/Products/Debug-iphonesimulator/Alamofire/Alamofire.framework/Alamofire compiled with newer version of Swift language (3.0) than previous files (2.0) for architecture x86_64
clang: error: unable to execute command: Segmentation fault: 11
clang: error: linker command failed due to signal (use -v to see invocation)
這時(shí)候要去修改一下Swift Language Version選項(xiàng)鳖宾,將YES改成NO, 如圖:
這時(shí)候在運(yùn)行工程逆航,應(yīng)該就OK了鼎文。。
4因俐、如果還是不行拇惋,試試將工程Display Name 補(bǔ)全。默認(rèn)是空的抹剩,按提示補(bǔ)全它撑帖。
直接按著提示鍵入:“testSwiftCocoaPods”即可。澳眷。
以上處理應(yīng)該就可以成功引入第三方庫(kù)并且運(yùn)行了胡嘿,如果還是不可以,提出來(lái)一起研究下钳踊。