最近在写swift的时候,需要网络加载,于是就加入了Alamofire这个网络库。由于习惯,我选择了实用cocoapod来管理库。那么问题来了,在import Alamofire的时候会报错,大概意思就是,无法导入Alamofire库,因为swift 2.3无法转到swift 3.0。
那么我最先想到的是xcode8 自带的功能,convert转换库。在这里我要声明一下,我不知道我用的对不对,转换过后居然有200多个错误,这你得改到啥时候。而且都是库里文件发生问题,这就更不好改了,所以我放弃了这个原生的方式。
然后在网上尝试找寻答案,
pod 'Alamofire',
:git => 'https://github.com/Alamofire/Alamofire.git',
:branch => 'swift3'
然并卵啊,终端报错,提示意思是Alamofire并没有对应的swift 3分支,没有办法,上官网看看有没有好方法吧
重点在于需要cocoapods 1.1.0以上的版本,我就查了一下自己的cocoapod的版本,果然不对,是cocoapods 1.0.0版本的,没办法升级吧。
坑又来了,升级不好使,还报权限的错误
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
解决方式就是直接引用地址
sudo gem install -n /usr/local/bin cocoapods
别忘了 pod setup
为了验证,我就检查当前版本,发现还是不对啊~~,还是1.0.0版本的,有点蒙圈。
其实原因很简单,这是因为你的cocoapods版本是存在多个的,系统默认使用最上层的版本,这时候你就需要删除了。
sudo gem uninstall cocoapods
回到原题,你在用cocoapods-1.1.0版本编译pod'Alamofire','~> 4.0'就会发现一切都变得正常了,还包括(SwiftJson这个库)也会正常。
还有注意的就是platform:ios,'10.0'。传说低于9.0也是不行的。
有错误的地方还望大家指正。