cocoaPods管理自己的静态库供其它人下载使用(直接使用上一篇用cocoaPod打包的静态库)
(1) 创建github仓库 (2) 下载仓库到本地 (3) 将打包好的framework放到项目中(4) 终端提交到github上
git add .git commit -m “install”git push origin master
git tag 1.0.0git push origin 1.0.0
二 (1) 在工程根目录初始化一个Podspec文件, 最好与项目同名
(2) 配置文件
## Be sure to run `pod spec lint XCLogLib.podspec' to ensure this is a# valid spec and to remove all comments including this before submitting the spec.## To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/#Pod::Spec.new do |s|# ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### These will help people to find your library, and whilst it# can feel like a chore to fill in it's definitely to your advantage. The# summary should be tweet-length, and the description more in depth.#s.name = "XCLogLib"s.version = "1.0.0"s.summary = " XCLogLib test demo"# This description is used to generate tags and improve search results.# * Think: What does it do? Why did you write it? What is the focus?# * Try to keep it short, snappy and to the point.# * Write the description between the DESC delimiters below.# * Finally, don't worry about the indent, CocoaPods strips it!s.description = <<-DESCA Test XCLogLib Demo. where you can put your description.DESCs.homepage = "https://github.com/xiaocai33/XCLogLib"# s.screenshots = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif"# ――― Spec License ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### Licensing your code is important. See http://choosealicense.com for more info.# CocoaPods will detect a license file if there is a named LICENSE*# Popular ones are 'MIT', 'BSD' and 'Apache License, Version 2.0'.##s.license = "MIT (example)"s.license = { :type => "MIT"}# ――― Author Metadata ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### Specify the authors of the library, with email addresses. Email addresses# of the authors are extracted from the SCM log. E.g. $ git log. CocoaPods also# accepts just a name if you'd rather not provide an email address.## Specify a social_media_url where others can refer to, for example a twitter# profile URL.#s.author = { "Cai Tengyuan" => "tycai1@baidu.com" }# Or just: s.author = "Cai Tengyuan"# ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### If this Pod runs only on iOS or OS X, then specify the platform and# the deployment target. You can optionally include the target after the platform.## s.platform = :ioss.platform = :ios, "8.0"# When using multiple platforms# s.ios.deployment_target = "5.0"# s.osx.deployment_target = "10.7"# s.watchos.deployment_target = "2.0"# s.tvos.deployment_target = "9.0"# ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### Specify the location from where the source should be retrieved.# Supports git, hg, bzr, svn and HTTP.#s.source = { :git => "https://github.com/xiaocai33/XCLogLib.git", :tag => "#{s.version}" }# ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### CocoaPods is smart about how it includes source code. For source files# giving a folder will include any swift, h, m, mm, c & cpp files.# For header files it will include any header in the folder.# Not including the public_header_files will make all headers public.#s.source_files = "XCLogLib", "XCLogLib/**/*.{h}"#s.exclude_files = "Classes/Exclude"s.vendored_libraries = "*/libXCLogStaticDemo.a"# framework is#s.vendored_frameworks = '*/XCLogStaticDemo.framework'# s.public_header_files = "Classes/**/*.h"# ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### A list of resources included with the Pod. These are copied into the# target bundle with a build phase script. Anything else will be cleaned.# You can preserve files from being cleaned, please don't preserve# non-essential files like tests, examples and documentation.## s.resource = "icon.png"# s.resources = "Resources/*.png"# s.preserve_paths = "FilesToSave", "MoreFilesToSave"# ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### Link your library with frameworks, or libraries. Libraries do not include# the lib prefix of their name.## s.framework = "SomeFramework"# s.frameworks = "SomeFramework", "AnotherFramework"# s.library = "iconv"# s.libraries = "iconv", "xml2"# ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### If your library depends on compiler flags you can set them in the xcconfig hash# where they will only apply to your library. If you depend on other Podspecs# you can include multiple dependencies to ensure it works.s.requires_arc = true# s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }# s.dependency "JSONKit", "~> 1.4"end
(3) 创建账号(如果已经创建过, 省略)
pod trunk register 邮箱 联系人 --description="描述" --verbose
创建成功会收到邮件,进邮箱验证
pod trunk me 可查看trunk信息
(4) trunk push之前要先验证
pod spec lint XCLogLib.podspec
出现 XCLogLib.podspec passed validation表示通过了
如果只是waring通过pod lib lint --allow-warnings #强制忽略
如何 想看错误详情
pod spec lint XCLogLib.podspec --verbose
如果有错, 看下配置文件哪里错了.
(5) pod trunk push 这个有点耐心, 需要会时间 (6) 成功后pod search XCLogLib如果搜索不到, 请看上篇博客介绍.
(7) 在其它项目的 Podfile 中引用:platform :ios, ‘8.0' 注意版本要大于静态库支持的最低版本pod ‘XCLogLib'或者 pod ‘XCLogLib’, '~> 1.0.0’
这样就可以在demo中引用头文件
#import “XCLog.h”
然后调用静态库的方法了.
如果是framework的框架, 则需要将配置文件的
s.vendored_libraries = “*/libXCLogStaticDemo.a"
s.vendored_frameworks = ‘*/XCLogStaticDemo.framework'
三 xcode项目支持pod
终端:cd path #到项目目录pod init fileName.Podfile #创建 Podfile 文件
pod ‘XCLogLib’
例子: