CocoaPods是什么?
CocoaPods管理Xcode项目的库依赖关系,也就是说CocoaPods一个苹果开发的包管理工具,类似于maven、gradle和npm。
项目的依赖项在一个称为Podfile的文本文件中指定,cocoapod将解析库之间的依赖关系,获取结果源代码,然后将其链接到Xcode工作区中,以构建你的项目。
最终的目标是通过创建一个更加集中的生态系统来提高第三方开源库的可发现性和参与度。
安装CocoaPods
CocoaPods是用Ruby构建的,可以用macOS上的默认Ruby进行安装。你可以使用Ruby版本管理器gem,但是我们建议你使用macOS上可用的标准Ruby。
使用默认的Ruby安装需要在安装gems时使用sudo。(不过,这只是gem安装期间的一个问题。)
不过在安装前,先更换gem的源,使用如下命令:
// 1、删除默认源
$ gem sources -r https://rubygems.org/
// 2、添加国内源
$ gem sources --add https://gems.ruby-china.com
// 3、更新
$ gem sources -u
然后开始安装cocoapods:
$ sudo gem install cocoapods
使用其它方式安装CocoaPods
如果你不想为这个过程授予RubyGems管理员权限,你可以告诉RubyGems安装你您的用户目录中,方法是将–user-install标志传递给gem install,或者配置RubyGems环境,我们认为后者是最好的解决办法。为此,打开终端并使用首选编辑器创建或编辑.bash_profile。然后将这些行输入到文件中:
export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$PATH
请注意,如果你选择使用–user-install选项,你仍然需要配置.bash_profile文件来设置PATH,或者使用由完整路径前缀的命令,你可以使用gem which cocoapods查看安装路径:
$ gem install cocoapods --user-install
$ gem which cocoapods
/Users/eloy/.gem/ruby/2.0.0/gems/cocoapods-0.29.0/lib/cocoapods.rb
$ /Users/eloy/.gem/ruby/2.0.0/bin/pod install
更新CocoaPods
更新cocoapods,你可以通过重新安装cocoapods获取更新:
$ [sudo] gem install cocoapods
或者安装pre版本:
$ [sudo] gem install cocoapods --pre
如果你最初使用sudo安装cocoapods gem,你应该再次使用该命令。
稍后,当您通过安装pods并使用CocoaPods时,CocoaPods X.X.X的新版本将会通知你X现在可用,请更新消息。
使用CocoaPods
使用cocoapods管理xcode项目依赖,其依赖包可以到cocoapods官网搜索,或者到github搜索,注意:实际开发中建议使用star数较多的项目,以及看其项目的更新频率。
首先去到你的目标项目的根目录,创建一个Podfile文件,输入以下内容,下面是一个iOS平台的示例:
platform :ios, '8.0'
use_frameworks!
target 'Basic' do
pod 'AFNetworking', '~> 2.6'
pod 'ORStackView', '~> 3.0'
pod 'SwiftyJSON', '~> 2.3'
end
另外也可以在命令行中切换到项目的根目录,使用pod init命令使用默认值创建Podfile文件,下面是OS X平台的示例:
平台标识为osx,这里的项目是osx平台的项目,主要是使用JSONKit作为示范。
source 'https://github.com/CocoaPods/Specs.git'
platform :osx, ’10.12’
target 'basic' do
pod 'JSONKit'
end
接着在项目中安装依赖:
$ pod install
在构建项目时,首先关闭原来的xcode项目,请确保始终打开Xcode工作空间,而不是项目文件:
如上图有两个主要文件basic.xcodeproj和basic.xcworkspace,前者是xcode项目文件,后者是xcode项目工作空间,打开*.xcworkspace文件,使用以下命令打开,或者直接点击打开:
$ open basic.xcworkspace
打开项目工作空间如下:
你会看到,当前工作空间有两个主要项目:basic和Pods项目,前者是当前开发的项目,后者是Pods的各种依赖,在Pods文件夹下可以找到项目用到的依赖及其源码,Products是一些静态库。
basic项目中的Frameworks文件夹是对于使用到的静态库,在项目的basic target中你可以看到,pod已经自动给当前项目添加了静态库。
但是要注意,你可能还是需要处理头文件和静态库的问题,如果缺少头文件,需要在Build Settings – Header search paths中添加路径,在这里添加的路径可以使用import<>和import””。
这里导入头文件有问题,提示找不到头文件,但是编译通过(不知道是什么问题????),新建另一个项目同样导入却不提示找不到头文件(怪哉!),真是奇了怪了,建议创建pod项目还是从开始就创建,下面是简单的调用代码:
#import <Foundation/Foundation.h>
#import <JSONKit.h>
int main(int argc, const char * argv[]) {
NSArray *array = @[@1, @3, @45];
id string = [array JSONString];
NSLog(@"%@", string);
return 0;
}
另外要注意base sdk是当前编译项目的SDK版本,一般选择最新的,deployment target指定最低sdk版本,可以假设为最小系统版本。假如target设置7,第三方依赖最低版本为8,则不能使用,需要将target设高,或者选择低版本的第三方依赖。
评论前必须登录!
注册