zoukankan      html  css  js  c++  java
  • 工具第二天 cocoaPods 私有库的创建

    之前介绍了cocoaPods的安装与使用,今天简单谈一下 自己的私有库运用cocoaPods依赖。

    cd到需要做库的工程目录下 创建一个podspec文件
    创建:pod spec create 名称  
    实例:pod spec create Utility   (会在当前目录生成 Utility.podspec)
    修改:vim Utility.podspec
    可以用vim 修改 也可以使用文本编译器进行修改,里面的提示很详细

    示例:

    #
    # 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/
    #

    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 = "U"
    s.version = "0.0.1"
    s.summary = "A short description of U."

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

    * 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!
    DESC

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


    # ――― 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作为开源公有类  这个步骤是不一样的 需要区别对待。

  • 相关阅读:
    什么是工厂模式
    冒泡算法
    CSS中的绝对定位与相对定位
    JS function立即调用的几种写法
    paip.java 线程无限wait的解决
    paip.java 多线程参数以及返回值Future FutureTask 的使用.
    PAIP.并发编程 多核编程 线程池 ExecutorService的判断线程结束
    paip.slap工具与于64位win7与JDBC的性能对比
    JProfiler8 注册码序列号
    paip.提升性能---mysql 优化cpu多核以及lan性能的关系.
  • 原文地址:https://www.cnblogs.com/superhappy/p/3468377.html
Copyright © 2011-2022 走看看