PodSpec

Podfile讲解

什么是Podfile?

  • Podfile是一个描述一个或多个Xcode项目的目标依赖项的规范。该文件应该只是命名Podfile。
  • 除了没有版本或特定的版本,也可以使用逻辑运算符:
'> 0.1' 任何高于0.1的版本
'>= 0.1' 版本0.1和任何更高版本
'< 0.1' 任何低于0.1的版本
'<= 0.1' 版本0.1和任何较低版本
  • 除了逻辑运算符,CocoaPods还有一个乐观的运算符~>:
'~> 0.1.2' 版本0.1.2和版本高达0.2,不包括0.2和更高
'~> 0.1' 版本0.1和版本高达1.0,不包括1.0和更高版本
'~> 0' 版本0及更高版本,这与没有版本基本相同。

#使用本机文件夹中的文件

  • 如果您想与其客户端项目一起开发Pod,您可以使用:path。
pod 'JZTComponent', :path => '~/Documents/GitHub/JZTComponent'

#有时您可能想要使用Pod的最新版本,特定版本或您自己的分支。如果是这种情况,您可以使用pod声明指定。

  • 要使用master的分支:
pod 'SwiftComponents', :git => 'https://github.com/LZRight123/SwiftComponents.git'
  • 要使用repo的不同分支:
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'dev'
  • 要使用repo的标记:
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :tag => '3.1.1'
  • 或指定提交:
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :commit => '0f506b1c45'
  • 需要注意的是该版本必须满足其他Pod对Pod的任何其他依赖关系。

#pod --version 查看版本
1.6.1

#gem list --local | grep cocoapods
cocoapods (1.6.1)
cocoapods-core (1.6.1)
cocoapods-deintegrate (1.0.4)
cocoapods-downloader (1.2.2)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.0)
cocoapods-stats (1.1.0)
cocoapods-trunk (1.3.1)
cocoapods-try (1.1.0)

#卸载 gem uninstall cocoapods

#安装 gem install cocoapods

#pod init 创建 podfile文件
#pod install

#将Pod添加到Xcode项目中
检查Specs存储库或cocoapods.org以确保您要使用的库可用。
在您的计算机上安装CocoaPods。
<安装
创建Podfile,并添加依赖项:
target 'MyApp' do
pod 'AFNetworking', '~> 3.0'
pod 'FBSDKCoreKit', '~> 4.9'
end
$ pod install在项目目录中运行。
打开App.xcworkspace并构建。
<

#许多以CocoaPods开头的人似乎认为pod install只在第一次使用CocoaPods设置项目时使用,pod update之后才会使用。但事实并非如此。
pod update PODNAME,
如果您在pod update没有pod名称的情况下运行,CocoaPods会将您列出的每个pod更新Podfile为最新版本。
使用时pod update PODNAME,您将只能更新特定的pod(检查是否存在新版本并相应地更新pod)。相反,pod install它不会尝试更新已安装的pod的版本。
当您向自己添加一个pod时Podfile,应该运行pod install,而不是pod update- 安装这个新pod,而不必担心在同一进程中更新现有pod。
只有pod update在您想要更新特定窗格(或所有窗格)的版本时才能使用。

#公有库和私有库的区别就在于存放podspec的仓库地址不一样
#公有库
pod spec create name 创建一个podspec文件,也可以从git上下载一个 修改一下即可。
pod lib lint --allow-warnings 验证.podspec文件格式是否正确。
pod spec lint --allow-warnings 验证远端文件的格式是否正确
在仓库目录下执行 pod trunk push JZTComponent.podspec --allow-warnings 就可以把code发布到cocoapods的公有仓库,记住tag需要和代码仓库的版本号一致

私有

pod repo push jaadee-hanlin-fcwc-repo-spec name.podspec
添加成功之后ymtSpecs中会包含Category库的podspec信息, 可以前往~/.cocoapods/repos下的ymtSpecs文件夹中查看, 同时git服务器中的远端也更新了.

更新版本的话 修改 .podspec文件版本号 代码打对应tag 执行上面第4步

[!] Authentication token is invalid or unverified. Either verify it with the email that was sent or register a new session.
按照如下步骤:
pod trunk register 你的邮箱
打开邮箱验证
重新执行pod trunk push podspec 提交podspec文件

发布后搜索不到可以尝试 终端输入
rm ~/Library/Caches/CocoaPods/search_index.json