工具次日 cocoaPods 私有庫的建立

以前介紹了cocoaPods的安裝與使用,今天簡單談一下 本身的私有庫運用cocoaPods依賴。html

cd到須要作庫的工程目錄下 建立一個podspec文件
建立:pod spec create 名稱  
實例:pod spec create Utility   (會在當前目錄生成 Utility.podspec)
修改:vim Utility.podspec
能夠用vim 修改 也能夠使用文本編譯器進行修改,裏面的提示很詳細ios

示例:git

#
# Be sure to run `pod spec lint U.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/
#github

Pod::Spec.new do |s|vim

# ――― 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.
#app

s.name = "U"
s.version = "0.0.1"
s.summary = "A short description of U."dom

s.description = <<-DESC
A longer description of U in Markdown format.svn

* Think: Why did you write this? What is the focus? What does it do?
* CocoaPods will be using this to generate tags, and improve search results.
* Try to keep it short, snappy and to the point.
* Finally, don't worry about the indent, CocoaPods strips it!
DESCui

s.homepage = "http://EXAMPLE/U"
# s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2"this


# ――― 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', :file => 'FILE_LICENSE' }


# ――― Author Metadata ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# Specify the authors of the library, with email addresses. Email addresses
# of the authors by using the SCM log. E.g. $ git log. If no email can be
# found CocoaPods accept just the names.
#

s.author = { "sutongle" => "sutongle@domob.cn" }
# s.authors = { "sutongle" => "sutongle@domob.cn", "other author" => "email@address.com" }
# s.author = 'sutongle', 'other author'


# ――― 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 = :ios
# s.platform = :ios, '5.0'

# When using multiple platforms
# s.ios.deployment_target = '5.0'
# s.osx.deployment_target = '10.7'


# ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# Specify the location from where the source should be retrieved.
# Supports git, hg, svn and HTTP.
#

s.source = { :git => "http://EXAMPLE/U.git", :tag => "0.0.1" }


# ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
#
# CocoaPods is smart about how it include source code, for source files
# giving a folder will include any 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 = 'Classes', 'Classes/**/*.{h,m}'
s.exclude_files = 'Classes/Exclude'

# 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

 

須要注意的地方:

1.針對framework的弱引用使用  s.weak_frameworks = 'AdSupport'

2.podspec裏面全部的註釋都須要刪除

3.將帶有podspec文件的工程 上傳到git倉庫

4.在使用時,Podfile文件裏面的寫法 區別於公有庫  示例:pod 'Utility',:git=>"http://xxxxx.git"(替換爲真實的git地址)

warning: 若是要把私有庫共享到gitHub做爲開源公有類  這個步驟是不同的 須要區別對待。

相關文章
相關標籤/搜索