CocoaPods
1、指定版本号带~>与不带的区别
带~> 是指定一个范围的版本号
~> 大于等于指定的版本号,小于高一位的版本号
eg:
~> 0.1.x 0.2以下 0.1.x以上(包括0.1.x)
~> 0.1 1以下 0.1以上(包括0.1)
pod 'AFNetworking', '~> 1.0' 版本号可以是1.0,可以是1.1,1.9,但必须小于2
不带~> 是指定固定的版本号
pod 'AFNetworking', '1.0' // 版本号指定为1.0
2、使用pods报错
[!] CDN: trunk Repo update failed - 17 error(s):
CDN: trunk URL couldn't be downloaded: ....
方案一
-
podfile
文件中指定source
源为master
:
source 'https://github.com/CocoaPods/Specs.git'
- 执行
pod repo remove trunk
移除trunk
源
但是我的没成功。
最后降版本,奈何网速差。。。
sudo gem uninstall cocoapods
gem install cocoapods -v 1.7.0
// 安装最新版cocoapods
sudo gem install cocoapods --pre
// 移除本地master
sudo rm -fr ~/.cocoapods/repos/master
// 移除本地缓存
sudo rm -fr ~/Library/Caches/CocoaPods/
//查看当前源
pod repo list
//查看pod 所在位置
which pod
// 重新setup,如果很慢可使用问题1的解决方法(git clone)
pod setup --verbose
// 移除trunk
pod repo remove trunk
查看文件下载进度,可以在另一个终端窗口,执行以下命令:
cd ~/.cocoapods
du -sh *
# du -sh ./.cocoapods/
执行du -sh *之后会显示已下载的文件大小。如果下载中断了,ctrl+c
结束命令,重新执行 pod setup
CocoaPods安装:
https://www.jianshu.com/p/ab6411a05bc2
https://www.jianshu.com/p/4ed3645a410a
CocoaPods 的源
https://github.com/CocoaPods/Specs.git
https://code.aliyun.com/Magi/CocoaPods.git 国内镜像 每小时更新
https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git 清华大学开源软件镜像站
使用其他源
CocoaPods 镜像使用帮助
CocoaPods 是一个 Cocoa 和 Cocoa Touch 框架的依赖管理器,具体原理和 Homebrew 有点类似,都是从 GitHub 下载索引,然后根据索引下载依赖的源代码。
对于旧版的 CocoaPods 可以使用如下方法使用 tuna 的镜像:
$ pod repo remove master
$ pod repo add master https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git
$ pod repo update
新版的 CocoaPods 不允许用pod repo add直接添加master库了,但是依然可以:
$ cd ~/.cocoapods/repos
$ pod repo remove master
$ git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master
最后进入自己的工程,在自己工程的podFile第一行加上:
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
搜索失败
成功运行配置环境20200601:
iMac (21.5-inch, Late 2015)
macOS 10.15.5 (19F101)
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin19]
rvm 1.29.10 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
pod 1.9.3
修改路径/etc
下hosts
文件
添加如下内容:
199.232.68.133 raw.githubusercontent.com
如何多个项目共用一个pod??
workspace 工作空间
单个project项目引入pod 时,直接生成对应的workspace
如何解决??
# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'
#指定项目所在的工作空间名称
workspace 'contact.xcworkspace'
#项目一,项目二共有 引用文件
pod 'AFNetworking'
#项目一
target 'contactDemo_swift' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
#指定项目一 的入口文件路径
project './contactDemo_swift/contactDemo_swift.xcodeproj'
# Pods for contactDemo_swift
pod 'SnapKit'
target 'contactDemo_swiftTests' do
inherit! :search_paths
# Pods for testing
end
target 'contactDemo_swiftUITests' do
# Pods for testing
end
end
#项目二
target 'contactDemo_objc' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
project './contactDemo_objc/contactDemo_objc.xcodeproj'
# Pods for contactDemo_swift
pod 'Masonry'
target 'contactDemo_swiftTests' do
inherit! :search_paths
# Pods for testing
end
target 'contactDemo_swiftUITests' do
# Pods for testing
end
end
参考:
https://www.jianshu.com/p/fc8edcf71dbb
https://www.jianshu.com/p/1110f671ed8a