CocoaPods 使用手册
CocoaPods 使用手册
CocoaPods 使用手册 1
1.核心组件 2
1.1 CocoaPods / CocoaPod 2
1.2 CocoaPods / Core 2
1.3 CocoaPods / Xcodeproj 3
2.安装和更新 3
3.Pod Commands 3
4.Podfile 4
5..podspec Syntax 5
6.支持第三方开发者将JPMSDK pod到自己的工程,如何做? 5
7.制作支持安装第三方静态库podspec和podfile 6
8.制作支持subspec的podspec 文件 6
9.对CocoaPods文档查看的支持 6
10.清理pod install配置后的工程 7
11.CocoaPods实用网站 7
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有权限安装。
关于安装旧版本:
sudo gem uninstall cocoapods
Password:
Select gem to uninstall:
1. cocoapods-0.34.4
2. cocoapods-0.35.0
3. All versions
删除新版本,自然便在旧版本了。如果之前未安装过指定的旧版本,则:
sudo gem install cocoapods -v 0.25.0
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
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 :
9.对CocoaPods文档查看的支持
link: http://cocoadocs.org
如何将自己写的代码产生apple 风格的文档:
- 安装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.
- 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
12. Pod install 开源库实战
- pod 'LayerKit'
用pod这个工具导入源码,其实这个工具做的还不错,但是如果导入的工程是framework,则目前遇到的就各种出错了,比如这个LayerKit。所以,如果以后用到的是framework,还是选择手动导入吧。
如何手动导入LayerKit这Framework?
1. 在与工程文件同级目录下,创建Framework这个目录,将LayerKit.Framework拷贝到此目录下;
2. 将这个目录添加进工程中;
3. 工程的Framework search path,需要将Framework这个目录路径添加进去;
4. 如果做到步骤3便结束,会报这样的错误
dyld: Library not loaded: @rpath/LayerKit.framework/LayerKit Reason: image not found
解决办法:in the target's General tab, there is an Embedded Binaries field, add framework there, and the crash is resolved.
可参照此链接: http://stackoverflow.com/questions/24333981/ios-app-with-framework-crashed-on-device-dyld-library-not-loaded-xcode-6-beta
运行程序时,会有如下打印:
LayerKit client v0.17.0 loaded
为了找到4步骤中的解决方案,真真是苦了臣妾了,差点完全舍弃掉pod。不过幸好pod做的事情比较多,所以把pod做好的事情,再手动做一篇,太麻烦了。因此,又回到了pod的阵营,只是以后导入framework,我是不打算用它了。
CocoaPods 使用手册的更多相关文章
- CocoaPods安装/卸载/初始化等常用操作
CocoaPods的官网:https://cocoapods.org/,官方指导文档https://guides.cocoapods.org/ 1)ruby gem源更换国内源gems.ruby-ch ...
- CocoaPods和git
CocoaPods是第三方框架的管理工具 CocoaPods 安装使用步骤: 1. 利用 gem 安装 CocoaPods! 1> gem 服务器在国外,提供了非常丰富的终端应用程序! gem ...
- FREERTOS 手册阅读笔记
郑重声明,版权所有! 转载需说明. FREERTOS堆栈大小的单位是word,不是byte. 根据处理器架构优化系统的任务优先级不能超过32,If the architecture optimized ...
- JS魔法堂:不完全国际化&本地化手册 之 理論篇
前言 最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...
- iOS -- CocoaPods
CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具.CocoaPods 的项目源码在 GitHub( https://github.com/CocoaP ...
- 最新的 cocoaPods 安装方法
经过努力终于发现了最新的 解决cocoaPods安装的办法: taobao Gems 源已停止维护,现由 ruby-china 提供镜像服务 第一步:安装rvm, 不管需不需要升级ruby,rvm可以 ...
- CocoaPods的安装、使用、以及遇到的问题
CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而 ...
- 转职成为TypeScript程序员的参考手册
写在前面 作者并没有任何可以作为背书的履历来证明自己写作这份手册的分量. 其内容大都来自于TypeScript官方资料或者搜索引擎获得,期间掺杂少量作者的私见,并会标明. 大部分内容来自于http:/ ...
- CocoaPods被卡住:Updating local specs repositories
使用CocoaPods被卡住:Updating local specs repositories 使用 pod install --verbose --no-repo-update
随机推荐
- 关于VS2012下安装破解文件Visual Assit X的一点说明
今天在使用Visual Studio 2012的时候,编写代码的助手Visual Assit X突然提示我说,试用期已过,要求我输入一个注册码,我靠,这货不是几个月前已经破解了吗,怎么今天傻不愣登的提 ...
- 【Delphi】注册快捷键
ShortCutToText , TextToShortCut 需 uses Menus; type TForm1 = class(TForm) HotKey1: THotKey; Button1: ...
- GRE协议学习与练习
通用路由封装(英语:Generic Routing Encapsulation,缩写为GRE),一种隧道协议,可以在虚拟点对点链路中封装多种网络层协议.由思科系统开发 以下是GRE协议的简单练习 网络 ...
- throw和throws
uncheckException的处理 class User{ private int age; public void setAge(int age){ if(age < 0){ //生成异常 ...
- NOJ1103-全排列
全排列 时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte总提交 : 1148 测试通过 : 302 ...
- EMVTag系列13《脱机PIN》
DGI8010用于个人化借记贷记交易中使用的脱机PIN.数据强制要求加密.制卡数据传输过程中,此DGI采用DEK加密保护. 数据分组标识 '8010'的数据内容 要求 ...
- 菜鸟学习Struts——国际化
一.概念 国际化:界面上的语言可以根据用户所在的地区改变显示语言. 如图: 二.实例 下面就一步一步的教大家利用Struts实现国际化. 1.编写资源文件 这个资源文件就是界面上显示的字符,资源文件里 ...
- 在Linux下JDK1.4.2安装报错的解决方法
JDK1.4.2的安装 Do you agree to the above license terms? [yes or no] yes Unpacking... tail: cann ...
- Stream,Reader/Writer,Buffered的区别(1)
Stream: 是字节流形式,exe文件,图片,视频等.支持8位的字符,用于 ASCII 字符和二进制数据. Reader/Writer: 是字符流,文本文件,XML,txt等,用于16位字符,也就是 ...
- hdu 1047 Integer Inquiry
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1047 Integer Inquiry Description One of the first use ...