CocoaPods 是iOS开发必不可少的一个第三方框架的管理工具,和Java的Maven类似,maven也是管理各种框架和版本控制的。maven更灵活,使得项目与项目之间可以相互依赖。
常用的CocoaPods 的第三方框架有 SDWebImage。,AFNetwork ,Alafiremore, kinderfinder,FMDB等,
1.检查更新ruby环境
sudo gem update --system
2 。 移除原有的镜像,添加新的镜像
gem sources --remove https://rubygems.org/
gem sources --add https://gems.ruby-china.com/
3.查看镜像是否添加成功
gem sources -l
lujun@lujundeMac ~ % gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.com/
lujun@lujundeMac ~ %
出现上述的就说明成功了,注意淘宝镜像不可用,不要使用淘宝镜像;
4.下面安装cocoaPods
sudo gem install -n /usr/local/bin cocoapods
根据网速不同,安装进度可能不同,大概2-3分钟左右
33 gems installed 出现这样说明安装成功!
pod setup
出现Setup completed 说明安装成功!恭喜cocoaPods 安装成功
最新版的MacOS Big Sur 系统命令行执行pod setup命令直接结束啦;大概只需要1s,跟网上其他教程不太一样,并非漫长的等待,此时我们需要清华源镜像,进行克隆
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
创建oc项目 test1 到桌面,然后直接点run, 确保项目在非cocoaPods 下也能跑起来。
先用终端命令 cd ,切换到项目带有 test1.xcodeproj 的文件夹下面,输入
pod init
让pod自动创建Podfile
使用 pod serach 命令 搜索 第三方框架,
例如
pod search AFNetworking
复制搜索出来的格式和版本,注意一定要复制全。通过vi 命令 编辑 Podfile
复制内容是
pod 'AFNetworking', '~> 4.0.1'
不要复制空格进去
版本带进去
:wq! 是保存退出, :q! 是不保存直接退出 ,i是插入新内容,esc是退出编辑
输入安装命令
pod install --verbose --no-repo-update
如果失败,多试几次。
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.
看到如上就说明安装OK
中途项目添加 其他框架,使用
pod update --verbose --no-repo-update
双击 test1.xcworkspace 这个文件
info.plist 加入ATS 代码,测试一段get 请求
- (IBAction)click:(id)sender {
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURL *URL = [NSURL URLWithString:@"http://httpbin.org/get"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
NSURLSessionDataTask *dataTask = [manager dataTaskWithRequest:request uploadProgress:nil downloadProgress:nil completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
if (error) {
NSLog(@"Error: %@", error);
} else {
NSLog(@"%@ %@", response, responseObject);
}
}];
[dataTask resume];
}
控制台打印
headers = {
Accept = "*/*";
"Accept-Encoding" = "gzip, deflate";
"Accept-Language" = "en-us";
Host = "httpbin.org";
"User-Agent" = "test1/1 CFNetwork/1220.1 Darwin/20.2.0";
"X-Amzn-Trace-Id" = "Root=1-60822c1c-4fe359717040ad051840a514";
};
origin = "183.192.94.186";
url = "http://httpbin.org/get";
}