CocoaPods使用手册

来源:互联网 发布:linux system 函数 编辑:程序博客网 时间:2024/06/05 20:21

原文链接:http://www.cnblogs.com/ouyangfang/p/4173544.html

收藏本文以后出现什么pods上的问题可以减少找资料的时间,也供大家学习!

1.核心组件

1.1 CocoaPods / CocoaPod

这是面向用户的组件,每当你执行一个pod命令时,这个组件将被激活。它包括了所有实用CocoaPods的功能,并且还能调用其他gem包来执行任务。

1.2 CocoaPods / Core

Core gem提供了与CocoaPods相关的文件(主要是Podfile和podspecs)的处理。

1.2.1 Podfile

Podfile用于配置项目所需要的第三方库。它能被高度定制,所以你可以尽可能地给它添加你想要的特性。

1.2.2 Podspec

.podspec文件描述了一个库将怎样被添加进工程中。.podspec文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。

1.3 CocoaPods / Xcodeproj

这个包负责工程文件直接关系的处理。它能创建以及修改.xcodeproj文件和.xcworkspace文件。它也可以作为一个独立的包使用,当你要编写修改项目文件的脚本时,可以考虑使用CocoaPods/Xcodeproj。

 

2.安装和更新

安装CocoaPods这个工具,需要用到gem(ruby的第三方库管理工具)。MacOS中默认支持gem,但是有时安装或更新cocoapods,需要更高版本的gem支持。

[sudo] gem update –system,升级gem。

chmod 775 usr/local,修改usr/local的访问权限,使[sudo] gem install cocoapods有权限安装。

 

3.Pod Commands

1、查看pod所有命令:pod help

2、查看具体命令用法: pod <command> —help, 例如:pod try —help

3、安装和配置第三方库: pod install. 如果想看到具体细节,pod install --verbose.一个很不错的link: http://blog.jobbole.com/53365/

4、检测并更新新版本库:pod update。可以通过pod outdated查看Pods中已过期的第三方开源库。pod install & pod update区别: 例如:Podfile中,pod ‘SVProgressHUD’,而未指定此开源库版本。pod install,如果SVProgressHUD已存在Pods中,则直接使用它。但是,pod update,会重新下载最新版本到Pods中。

 

5、产生`~/.cocoapods/repos`: pod setup. Cocoapods目录中保持了它支持的所有第三方开源库信息. 更新,sudo rm -fr ~/.cocoapods/repos/master, 再pod setup。也可以使用git进行更新。

6、搜索第三方开源库:  pod search <open source>, 在cocoapods这个目录中搜索。也可以在http://cocoapods.org中搜索第三方库。

 

4.Podfile

具体可以查看: http://guides.cocoapods.org/syntax/podfile.html

 

1. pod ‘objection’’version’;

 例如,pod ‘MCDateExtensions’,不指定版本,在pod update时会获取最新的版本;pod ‘MCDateExtensions’’~>1.0.0’,获取的版本信息是[1.0.0, 1.1.0). ~>是参照ruby的语法的,~>x.y.z, 的意思是版本号 x,y 固定,但可以大于等于 z。通常版本号的命名有其惯例:x major 版本号升级表示有 API 发生不向后的兼容性变动,y minor 版本号升级表示有功能新增,z tiny 版本号升级表示 bugs 修正。因此 “~> x.y.z” 可以让我們保有升级弹性,又不致于升級太多让程序发生不兼容错误;

 

2. 从本地pod files, pod 'AFNetworking', :path => '~/Documents/AFNetworking'此目录下一定要有.podspec文档

 

3. 从git server端pod files

To use the master branch of the repo:

pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :branch => ‘develop’

 

Or specify a commit:

 

pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :commit => '082f8319af'

 

4、 pod 'ShareKit/Facebook' 支持子模块的导入。

 

5、Pod install依次做了什么?

步骤:

http://blog.jobbole.com/53365/

 

 

6、较优的git仓库管理

将Podfile & Podfile.lock & workspace放到git仓库中管理

原因:

Podfile.lock, 保证每个team成员使用的第三方库是同一个版本的

Workspace, 如果由CocoaPods生成,则没有必要。如果workspace是自己创建的,就需要。

 

7、注释

单行注释: #

多行注释:

    =begin    

codes to comment 

   =end

 

5..podspec Syntax

1、pod spec create ‘name’产生一个name.podspec文件,可仔细阅读此文件,熟悉.podspec语法;

 

2、pod spec lint ‘name’.podspec 用来build .podspec文件是否有错。

6.支持第三方开发者将JPMSDK pod到自己的工程,如何做?

解决以下几个问题:

1、     在工程中创建一个.podspec文件,并让其编译通过;

编译.podspec文件使用命令,pod spec lint name. 官方文档: 这份文档:http://guides.cocoapods.org/making/making-a-cocoapod.html

2、     将自定义的.podspec纳入Cocoa Spec管理;

I、需github上一个account,并fork cocoa spec;

II、将更改push到fork cocoa spec responsity上;

III、new pull request -> compare across forks;

3、     处理JPMSDK version update;重复2中的III.

 

7.制作支持安装第三方静态库podspec和podfile

1) 如何制作podspec文件参照OpenSSL:  

                                       https://github.com/krzyzanowskim/OpenSSL

此时需要配置Library search path, 则需要在你的工程的target中做如下操作:

Building Setting->Other linker,双击加$(inherited)

2) 如果写Podfile以支持从本地导入OpenSSL:

例如:pod 'OpenSSL', :path => '../OpenSSL'(此为OpenSSL在本地的路径),从网上下载的包中,有一个快捷的OpenSSL.podspec文件和OpenSSL-Universal.podspec文件。删除快捷方式打开的OpenSSL.podspec文件,将OpenSSL-Universal.podspec文件重命名为OpenSSL.podspec,并将此文件中s.name = "OpenSSL-Universal"修改成s.name = "OpenSSL"。

虽然,从理论上可以用pod ‘OpenSSL’, :podspec => '../OpenSSL /OpenSSL-Universal.podspec'方式指定,但是实际操作却不成功,不知道为什么。

 

8.制作支持subspec的podspec 文件

参照例子ShareKit :

https://github.com/ShareKit

 

9.对CocoaPods文档查看的支持

link: http://cocoadocs.org

如何将自己写的代码产生apple 风格的文档:

  1. 安装Alcatraz和VVDocumenter-Xcode这两个xcode插件,

安装 Alcatraz,link: http://alcatraz.io

可以在此路径下找到:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins. Relaunch Xcode and type in /// above any code you want to write a document to.

  1. Download the link: https://github.com/tomaz/appledoc, 安装appledoc.

或者brew(unix tool)安装。安装方法:cd到appledoc的下载路径;sudo sh install-appledoc.sh; sudo sh install-appledoc.sh -b /usr/bin -t ~/Library/Application\ Support/appledoc.

3. 可以在终端上输入appledoc —help查看它的用法。Simple Example:  appledoc ./NoticeBandSDK  --project-name NoticeBandSDK --project-company "mophie-inc" --company-id com.mophie-inc.SDKDoc --output ./,会在当前目录产生一个txt,告诉你文档所在路径。Xcode中所有文档路径: ~/Library/Developer/Shared/Documentation/DocSets

 

10.清理pod install配置后的工程

  • 文件清理

    删除Podfile.lock,workspace,Pods目录

  • 工程配置清理

    1、打开要清理的工程,选择Build Phases, delete Manifest.lock & Copy pods Resources & Run script。

    2.Framework&Header search path清理

  • 清理工程添加文件

    选择工程,到Link Binary With Libraries,删除libPods.a和类似于libPods***.a的动态库

 

11.CocoaPods实用网站

  • 官网:http://cocoapods.org
  • 查cocoapods文档 http://cocoadocs.org
  • Stackoverflow主页: http://stackoverflow.com/search?q=CocoaPods

github主页 https://github.com/CocoaPods



再贴上一个刚刚install时遇到的问题:

――― MARKDOWN TEMPLATE ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――


### Command


```

/usr/bin/pod install

```


### Report


* What did you do?


* What did you expect to happen?


* What happened instead?



### Stack


```

   CocoaPods : 0.38.2

        Ruby : ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]

    RubyGems : 2.0.14

        Host : Mac OS X 10.10.5 (14F27)

       Xcode : 7.0 (7A220)

         Git : git version 2.3.8 (Apple Git-58)

Ruby lib dir : /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib

Repositories : master - https://github.com/CocoaPods/Specs.git @ d8421422b427ad34d05fd1bee698ebc34437627b

```


### Plugins


```

cocoapods-plugins : 0.4.2

cocoapods-stats   : 0.5.3

cocoapods-trunk   : 0.6.1

cocoapods-try     : 0.4.5

```


### Podfile


```ruby

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '7.0'

inhibit_all_warnings!


pod 'iCarousel','~> 1.7.6'

pod 'Reachability', '~> 3.1.0'

pod 'FMDB', '~> 2.0'

pod 'AFNetworking', '~> 2.5.4'

pod 'AFDownloadRequestOperation', '~> 2.0.1'

pod 'MBProgressHUD','~> 0.9'

pod 'OpenUDID','~> 1.0.0'

pod 'pop', '~> 1.0.7'

pod 'ReactiveCocoa', '~> 2.5'

```


### Error


```

Errno::ENOENT - No such file or directory - /Users/jointsong/Documents/xxx/Pods/BuildHeaders/AWSiOSSDKv2/AutoScaling.h

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:905:in `stat'

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:905:in `symbolic_modes_to_i'

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:926:in `fu_mode'

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1000:in `block (2 levels) in chmod_R'

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:1460:in `preorder_traverse'

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:998:in `block in chmod_R'

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:997:in `each'

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:997:in `chmod_R'

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/installer.rb:117:in `block in prepare'

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/user_interface.rb:140:in `message'

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/installer.rb:116:in `prepare'

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/installer.rb:103:in `install!'

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/command/project.rb:71:in `run_install_with_update'

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/command/project.rb:101:in `run'

/Library/Ruby/Gems/2.0.0/gems/claide-0.9.1/lib/claide/command.rb:312:in `run'

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/lib/cocoapods/command.rb:48:in `run'

/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.38.2/bin/pod:44:in `<top (required)>'

/usr/bin/pod:23:in `load'

/usr/bin/pod:23:in `<main>'

```


――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――


[!] Oh no, an error occurred.


Search for existing GitHub issues similar to yours:

https://github.com/CocoaPods/CocoaPods/search?q=No+such+file+or+directory+-+%2FUsers%2Fjointsong%2FDocuments%2FChineseSkill_ios+%28trunk%29%E5%89%AF%E6%9C%AC%2FPods%2FBuildHeaders%2FAWSiOSSDKv2%2FAutoScaling.h&type=Issues


If none exists, create a ticket, with the template displayed above, on:

https://github.com/CocoaPods/CocoaPods/issues/new


Be sure to first read the contributing guide for details on how to properly submit a ticket:

https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md


Don't forget to anonymize any private data!

安装时应该是AWS的头文件找不到,所以stack了一下,找到了解决办法。据说是因为dumplicate,这里我选择的是删除了BuildHeaders文件夹,再重新安装,自己根据情况也有可能是需要删除Headers的文件夹。
0 0
原创粉丝点击