swift编程开发iTunes 发布相关Swift编程

CocoaPods-3.podspec文件的说明和编辑

2018-11-16  本文已影响1人  Mccc_

一. 什么是podspec文件?

二. 本地的specs文件夹的理解?

终端执行 open ~/.cocoapods/repos 打开本地的repos文件夹。

本地repos介绍

repos 里面的文件夹分为两类:
两种的最大区别在于存放podspec文件的仓库谁

三. 如何创建podspec文件?

  1. pod spec create XXX
    pod spec create MCViewController (在项目根目录下)
  2. 会在项目目录中生成一个XXX.podsepc文件

四.如何编写podspec文件?

  1. 右击 --> 打开方式 --> 其他 --> Xcode打开
  2. 常用的基本信息
name:框架名
version:当前版本(注意,是当前版本,假如你后续更新了新版本,需要修改此处)
summary:简要描述,在pod search的时候会显示该信息。
description:详细描述
homepage:页面链接
license:开源协议
author:作者
source:源码git地址
source_files:源文件(可以包含.h和.m)
platform:支持最低ios版本
public_header_files:头文件(.h文件)
resources:资源文件(配置的文件都会被放到mainBundle中)
resource_bundles:资源文件(配置的文件会放到你自己指定的bundle中)

frameworks:依赖的系统框架
vendored_frameworks:依赖的非系统框架
libraries:依赖的系统库
vendored_libraries:依赖的非系统的静态库
dependency:依赖的三方库

swift_version : swift对应的版本

你在三方库中看到的那些文件都是通过这些配置来确定的。当pod install引入三方库时,只会引入你在podspec中配置的那些文件。pods会根据对应的路径去下载对应文件。

示例说明:

Pod::Spec.new do |s|
s.name         = "User"
s.version      = "1.3"
s.summary      = "组件化 用户模块"
s.homepage     = "https://gitee.com/modularComponents/User"
s.license      = "MIT"
s.author       = { "MC" => "562863544@qq.com" }
s.platform     = :ios, "8.0"
s.source       = { :git => "https://gitee.com/modularComponents/User.git", :tag => "1.3" }
s.source_files = "User/User/**/*"
s.ios.deployment_target = '8.0'
s.swift_version = '4.2'
s.frameworks = 'UIKit'
s.dependency 'MCPageViewController'
s.dependency 'SnapKit'
end

主要说明几个点:

1. source_files
 source_files = 'User/User/Reuse.swift' // 直接指定Reuse文件夹名下的所有`.swift`文件
或:
source_files = 'User/User/**/*'      `**/*`表示podName目录及其子目录下所有文件,
  如果需要在项目中分组显示,这里也要做相应的设置(注意: 这个是物理路径,不是Xcode的项目里的路径)
2. dependency 依赖三方的配置
  1. 依赖公共库。
    s.dependency 'SnapKit' #当前依赖库,pod install时会自动下载该库(注意:没有=)
  2. 依赖私有库。
    s.dependency 'MCPageViewController'
  3. 如果有依赖库情况,检验podspec文件不通过的情况。请使用:
    pod spec lint --sources='spec仓库的地址 如有多个用,隔开。如果公有库,地址写https://github.com/CocoaPods/Specs.git
    比如依赖了两个库MCPageViewController (私有)SnapKit (共有)
    pod spec lint --sources='https://github.com/mancongiOS/MCPageViewControllerRepo.git,https://github.com/CocoaPods/Specs.git'
  4. 如何依赖混合源(OC和Swift)?
3. 如何做文件夹层级?
4. 如何关联资源文件?

五. 如何校验podspec文件

  1. pod lib lint
    只从本地验证你的pod能否通过验证。
  2. pod spec lint
    从本地和远程验证你的pod能否通过验证,建议使用这个。
    --allow-warnings --use-libraries 这个两个如何实现
  3. 私有库的验证。
    使用pod spec lint去验证私有库能否通过验证时应该,应该要添加--sources选项,不然会出现找不到repo的错误。
    pod spec lint --sources='私有仓库repo地址,https://github.com/CocoaPods/Specs'
  4. 私有库引用私有库的问题
    在私有库引用了私有库的情况下,在验证和推送私有库的情况下都要加上所有的资源地址,不然pod会默认从官方repo查询。
    pod spec lint --sources='私有仓库repo地址,https://github.com/CocoaPods/Specs'
    pod repo push 本地repo名 podspec名 --sources='私有仓库repo地址,https://github.com/CocoaPods/Specs'
上一篇下一篇

猜你喜欢

热点阅读