[记录]Xcode安装AFNetworking 4.0,使用CocoaPods
在说AFNetworking,先说说CocoaPods。以前我们程序员需要用到某个第三方库,一般都是先从网上将相关库下载下来,然后导入到工程中,如果这个库用到其它三方库,又得下载导入其它三分库,十分麻烦。但现在,由于工具的不断发展(以及网络仓库的出现),我们如果要用到某个第三方库,只需要在配置文件里告诉开发工具我们需要的库名称与版本即可,工具会自动从网络仓库中下载我们需要的库以及相关依赖库。例如Android Studio,我们输入以下代码:
implementation "com.squareup.okhttp3:okhttp:4.4.0"
gradle自会自动帮我们下载okhttp的库。
而在Xcode中,没有集成相关的工具,需要自己安装(SwiftUI貌似集成有类似的工具),Xcode一般使用CocoaPods来管理第三方库。这里以如何安装AFNetworking为例,说明如何安装使用CocoaPods来管理第三方库。
前提:版本 Xcode 9.1 with IOS 11.1, Mac 10.13
- 安装CocoaPods
CocoaPods是用Ruby写的,Mac本身有内置Ruby,准备工作是升级一下Ruby即可。升级前,先更新一个Ruby的源,
gem sources --remove https://rubygems.org/
gem sources -a https://gems.ruby-china.com/
网上很多资料用gem sources -add https://gems.ruby-china.com/ 来更新源,但我这提示如下错误
dd is not a URI
我这改为-a 就正常了,
然后就是更新Ruby:
sudo gem update --system
输入密码后,就能更新了:
Password:
Updating rubygems-update
Fetching: rubygems-update-2.7.7.gem (100%)
Successfully installed rubygems-update-2.7.7
Parsing documentation for rubygems-update-2.7.7
Installing ri documentation for rubygems-update-2.7.7
Installing darkfish documentation for rubygems-update-2.7.7
Done installing documentation for rubygems-update after 31 seconds
Parsing documentation for rubygems-update-2.7.7
Done installing documentation for rubygems-update after 0 seconds
Installing RubyGems 2.7.7
提示/usr/bin/权限错误,命令可改为如下:
sudo gem update -n /usr/local/bin —system
然后开始安装cocoapods :
sudo gem install cocoapods -n /usr/local/bin
- 配置下载cocoapods
安装cocoapods之后,还需要配置下载cocoapods.git:
mkdir -p ~/.cocoapods/repos/
cd ~/.cocoapods/repos
pod repo remove master
git clone --depth 1 https://github.com/CocoaPods/Specs.git master
默认库源下载比较慢,网上很多推荐用清华的源,但我这清华的源更慢,还不稳定,根本下不了,最终使用默认的源下载,速度虽然慢,但稳定。
下载完之后,及可以受用pod search了:
pod search AFNetworking
- 新建配置文件,下载AFNetworking
在工程目录下vi Podfile,输入如下类似内容并保存:
target "MediaTest" do
pod "AFNetworking", "~>4.0"
end
然后运行pod install,即可成功安装AFNetworking到项目中
- 修改项目头文件配置
此时你去项目中,import <AFNetworking.h>,你会发现提示找不到AFNetworking,因为还需要修改下头文件的来源,
在 Search Paths 中 Library Search Paths 添加:
“$PODS_CONFIGURATION_BUILD_DIR/AFNetworking”
参考下图:
然后你会发现import <AFNetworking.h>不提示错误了,相关类也可以使用了:
- 结语
步步为营,遥望泰山之巅。
后续补充:好吧,我错了,第四条其实是有问题的,正确的方法是,不要打开MediaTest.xcodeproj的工程,pod install成功后应该打开生成的MediaTest.xcworkspace。或者说双击MediaTest.xcworkspace文件打开工程,这样才能编译成功。