iOS 上传Framework到cocoapods

版权声明:本文为博主原创文章,欢迎转载。 https://blog.csdn.net/u010828718/article/details/81870432

iOS 上传Framework到cocoapods

前言

制作cocoapods步骤

  • 创建github平台上的仓库

  • 创建.podspec

  • 编辑.podspec

  • 代码提交到github平台

  • 项目打tag

  • 验证.podspec

  • 注册 cocoapods trunk帐号

  • 发布.podspec到cocoapods

1 创建github平台上的仓库

  • 在github上创建一个新的仓库
  • 填写Repository name
    • 勾选Public
  • 勾选Initialize this repository With a README
  • Add .gitignore:
    • 根据你的情况自己选择。比如: Objectvie-C
  • Add a license::
    • 根据你的情况自己选择。比如:MIT License
  • clone代码到本地

注意:

如果有两个github,提交到github前,需要在clone下来的文件中去修改隐藏文件 .Git/config 。否则出现The requested URL returned error: 403 Forbidden while accessing的错误。

步骤如下:

  1. vim .Git/config
  2. 修改 url = https://github.com/xxx/example.git 为 url = https://[email protected]/xxx/example.git

2 创建.podspec

  • $ pod spec create XXXSDK
  • $ vim XXXSDK.podspec

3 编辑.podspec

假设:github文件夹目录结构

  • XXXSDK
    • lib
  • XXXSDK.framework
    • openSource
    • publicSource.h
    • publicSource.m
  • resource
    • resource.bundle
    • resource.jpg
Pod::Spec.new do |s|
s.name         = "XXXSDK"
s.version      = "1.0.0"
s.summary      = "这是一个SDK"
s.description  = "这是一个SDK 一定要比summary长."
s.homepage     = "https://github.com/xxxx/XXXSDK"
s.license      = { :type => "MIT", :file => "LICENSE" }
s.author       = { "作者" => "[email protected]" }
s.platform     = :ios, "8.0"

#  When using multiple platforms ios部署版本
# s.ios.deployment_target = "5.0"
# s.osx.deployment_target = "10.7"

#1 git commit -m =>"13287dd",讲pod版本与git仓库中的某一次提交绑定
#s.source = { :git => "https://github.com/xxxx/XXXSDK", :commit => "13287dd" }
#2 将这个Pod版本与Git仓库中某个版本的comit绑定 
#s.source = { :git => "https://github.com/xxxx/XXXSDK", :tag => 1.0.0 }
#3 将这个Pod版本与Git仓库中相同版本的comit绑定
#s.source = { :git => "https://github.com/xxxx/XXXSDK", :tag => s.version }
s.source       = { :git => "https://github.com/xxxx/XXXSDK.git", :tag => "v#{s.version}" }
s.source_files  = "XXXSDK", "XXXSDK/openSource/*.{h,m}"
s.vendored_frameworks = 'XXXSDK/lib/XXXSDK.framework'
s.resources          = "XXXSDK/resource/resource.bundle"
s.framework  = "UIKit"
#s.resource    = "XXXSDK/resource/resource.jpg"
#s.frameworks = "SomeFramework", "AnotherFramework"
#引用libxml2.lib和libz.lib、tbd ,去掉头尾的lib
# s.library   = "z"
# s.libraries = "z", "xml2"
#s.vendored_libraries = 'XXXSDK/lib/XXXSDK.a'
s.requires_arc = true
# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
# s.dependency "JSONKit", "~> 1.4" s.dependency = 'AFNetworking', '~> 2.3' s.dependency = 'SDWebImage'
# 创建子库
#s.subspec 'Components' do |ss|
#ss.source_files = 'YDKit/Components/*/.{h,m}'
#end
end
  • s.name:
    • 名称
    • pod search 搜索的关键词,一定要和.podspec的名称一样,否则报错
  • s.version
    • 版本号
  • s.ios.deployment_target:
    • 支持的pod最低版本
  • s.summary:
    • 简介
  • s.homepage:
    • 项目主页地址
  • s.license:
    • 开源协议(创建github库的时候选择的)
  • s.author:
    • 作者信息(这里随便谢谢也可以通过)
  • s.social_media_url:
    • 社交网址
  • s.source:
    • 项目的地址
  • s.source_files:
    • 需要包含的源文件
  • s.resource:
    • 资源文件,单个
  • s.resources:
    • 资源文件(含bundle)
  • s.vendored_frameworks:
    • 包含的framework,也就是我们自己制作的pod
  • s.requires_arc:
    • 是否支持ARC
  • s.dependency
    • 依赖库,不能依赖未发布的库.如AFNetWorking
  • s.description:
    • 描述,字数要比s.summary
  • s.screenshots:
    • 截图
  • s.exclude_files:
    • 隐藏的文件
  • s.public_header_files:
    • 公开的头文件
  • s.framework:
    • 所需的framework,单个
  • s.frameworks:
    • 所需的framework,多个用逗号隔开
  • s.library
    • 引用的静态库
  • s.libraries
    • 引用的静态库,多个用逗号隔开
  • s.vendored_libraries:
    • 引用自己生成的.a
  • s.vendored_frameworks:
    • 引用自己生成的.framework
  • s.dependency:
    • 依赖的库
  • s.ios.deployment_target
    • iOS部署版本

4 代码提交到github平台

提交到github

  • 将要上传的文件,拖到此文件夹下
  • git add .
  • git commit -m “描述”
  • git push -u origin master

5 项目打tag


git tag 'v1.0.0'

git push origin --tags

#下边是拓展,不再步骤中
#删除远程tag
git push origin --delete tag 'v1.0.0'

6 验证.podspec

# 加上--verbose验证失败会显示详细的报错信息
pod spec lint XXXSDK.podspec --verbose

如果验证成功的话会显示

XXXSDK.podspec passed validation.

7 注册 cocoapods trunk帐号

# 1 注册
pod trunk register 123456@qq.com '用户名' --description='描述' --verbose

# 下边是拓展,不再步骤中
# 2 查看注册信息
pod trunk me
# 3 添加其他维护者
pod trunk add-owner XXXSDK 123456@qq.com
# 4 删除已发的版本
pod trunk delete XXXSDK 版本号
# 5 删除某个pod
pod trunk deprecate XXXSDK
# 6 删除其他维护者
pod trunk remove-owner XXXSDK 56789@qq.com

8 发布(或更新).podspec到cocoapods

pod trunk push XXXSDK.podspec

9 注意

  • pod search 搜索的时候出现[!] Unable to find a pod with name, author, summary, or description matching xxxxx 错误

    rm ~/Library/Caches/CocoaPods/search_index.json 
    pod search xxx
  • pod search 搜索搜不到,需要更新本地pod依赖库

    pod setup

10 参考

 1 trunk 命令详解

 2 制作cocoapods的官方网站

 3 iOS 私有库、创建、使用、更新

4 Cocoapods整理(三)——编写podspec文件

5 Podspec Syntax Reference

6 iOS开发:项目管理之利用cocopods以及svn创建本地私有仓库

7 GitHub 实现多人协同提交代码并且权限分组管理

猜你喜欢

转载自blog.csdn.net/u010828718/article/details/81870432