Xamarin.iOS CocoaPods基本使用

本文主要讲解使用CocoaPods进行第三方库的导入和使用


之前我给大家分享过两篇关于使用OC源生类库的介绍,但是那些方法还得自己去新建一个静态库然后进行将类库转化为C#支持的属性和方法,依然很复杂,在OC中我们知道有CocoaPods去帮助OC程序员们自动去导入第三方的框架,方便使用而且对于版本更新的问题也很好处理,在Xamarin中也为我们提供了相应的简单方法,Xamarin同样支持我们使用CocoaPods去导入第三方库,那么我们就看看CocoaPods在Xamarin中是如何使用的。

本文目录结构
1.CocoaPods简介
2.CocoaPods环境安装和配置
3.CocoaPods的使用
4.建立绑定类库时候的问题处理

CocoaPods简介

OC中的CocoaPods

CocoaPods是一个负责管理iOS项目中第三方开源库的工具。如果你熟悉OC的话,对于CocoaPods应该不算陌生了,在使用Xcode开发的时候我们通常将导入第三方开源库这个工作交由CocoaPods来自动处理。我们不需要再去像手动导入第三方库一样去设置某些编译参数和导入必须的框架。在我们有了CocoaPods这个工具之后,只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后在命令行执行 pod install命令。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。

Xamarin中的CocoaPods

在Xamarin中Objective Sharpie3.0版中出现了新功能支持绑定CocoaPods,甚至还有一个终端命令(sharpie pod)来提供下载,配置和构建CocoaPods非常简单。Xamarin其实跟OC中使用CocoaPods的方式基本相同,只是采用了一个类库转化工具去执行这个过程,其本质和内部原理都和OC中一样。只是在使用上不像OC中直接在程序中就能引用第三方库,Xamarin在使用CocoaPods导入第三方库的时候还是需要通过sharpie pod命令生成两个.cs文件去转换相应的方法和属性。

CocoaPods环境安装和配置

1、升级Ruby环境

在安装CocoaPods之前,首先要在本地安装好Ruby环境,但是Mac中一般自带Ruby,所以我们只需要去更新Ruby即可。

终端输入 :$ gem update --system 

如果你此时遇到错误

You don't have write permissions for the Liabrary/Ruby/Gems/2.0.0 directory

一般因为你没有权限去执行,执行将上文命令改为这个即可。

终端输入 :$ sudo gem update --system 

如果出现以下提示,代表你已经安装最新Ruby,无需更新

Latest version currently installed. Aborting.

2、更换Ruby镜像

当我们使用CocoaPods自动添加第三方开源库的时候,我们通过输入命令系统会自动下载,此时需要使用到Ruby,但是系统内置的Ruby镜像下载非常缓慢,我们首先移除现有的Ruby镜像

终端输入 :$ sudo gem sources --remove https://rubygems.org/

然后添加国内最新镜像源(淘宝的Ruby镜像已经不更新了,无法使用)

终端输入 :$ sudo gem source -a https://gems.ruby-china.org/

替换后查看当前镜像

终端输入 :$ sudo gem sources -l

如果此时只显示这一个镜像即成功,否则删除重新设置

https://gems.ruby-china.org/

3、安装CocoaPods

在终端中输入以下命令安装CocoaPods

终端输入 :$ sudo gem install cocoapods

如果出现了以下的错误提示:


Xamarin.iOS CocoaPods基本使用_第1张图片

说明你没有权限,修改命令为

终端输入 :$ sudo gem install -n /usr/local/bin cocoapods

如果出现了以下的错误提示:

ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: cocoapods requires cocoapods-core (= 0.33.1), claide (~> 0.6.1), cocoapods-downloader (~> 0.6.1), cocoapods-plugins (~> 0.2.0), cocoapods-try (~> 0.3.0), cocoapods-trunk (~> 0.1.1), nap (~> 0.7)

说明你Ruby环境与问题,更新本地的Ruby环境:

sudo gem update --system

等待安装、成功后会有以下提示

Xamarin.iOS CocoaPods基本使用_第2张图片

到这之后再执行(PS:这个过程是漫长的,要有耐心)

终端输入 :$ pod setup

等待漫长的安装过程后,在你的Mac中就配置好了CocoaPods环境。

CocoaPods的使用

首先我们使用CocoaPods导入AFNetworking框架为例,在终端中输入命令

终端输入 :$ sharpie pod init ios AFNetworking

如果出现以下提示,即代表已经初始化AFNetworking类库完成
** Setting up CocoaPods master repo ... (this may take a while the first time) ** Searching for requested CocoaPods ... ** Working directory: ** - Writing Podfile ... ** - Installing CocoaPods ... ** (running "pod install --no-integrate --no-repo-update") Analyzing dependencies Downloading dependencies Installing AFNetworking (2.6.0) Generating Pods project Sending stats ** Success! You can now use other "sharpie pod" commands.

接着我们需要绑定相应的类库去生成转换后的.cs文件

终端输入 :$ sharpie pod bind

如果出现以下提示,即代表转换完成,我们去当前路径目录下去Binding文件夹下就能找到相应的转换后的文件
(... lots of build output ...) Parsing 19 header files... Binding... [write] ApiDefinitions.cs [write] StructsAndEnums.cs Done.

到这里两个.cs文件已经生成完成,我们只需要建立一个Binding Liabrary去为我们Xamarin.iOS项目去提供引用即可。

注意事项:
1.这个在建立Binding Liabrary的时候,我们引用完.a文件,复制完两个.cs文件中的代码后,编译一般我们会发现很多错误。此时我们不要着急和害怕,因为许多错误都是转换过程中某些类名称有误,此时我们只需要一个个或者批量更改就行。例如错误提示NSURLRequest找不到相应的类,此时我们只需要重写编写你会发现在C#中应该写为NSUrlRequest。还有许多都是这样的错误一个个更改就行。
2.当我们更改完系统转换时生成的类名错误后,接着就会出现 [Verify]错误,此时我们只需要删去所有报错地方的 [Verify]标签即可。
3.当改完上边两个错误时,接着我们就会面临Static的问题,这个问题也是一样报错的地方删除即可。
4.一般当我们改完上边提到的错误后,我们再进行编译即可完成。

到这里Xamarin.iOS CocoaPods的使用介绍就完成了,希望能对您有所帮助。

——End 有问题可以加我微信,大家一起讨论

Xamarin.iOS CocoaPods基本使用_第3张图片

你可能感兴趣的:(Xamarin.iOS CocoaPods基本使用)