iOS记录

CocoaPods

2019-12-03  本文已影响0人  bianruifeng

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: ....

方案一

  1. podfile文件中指定source源为master

source 'https://github.com/CocoaPods/Specs.git'

  1. 执行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

修改路径/etchosts文件
添加如下内容:

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

上一篇下一篇

猜你喜欢

热点阅读