使用CocoaPods的例子
发布日期:2022-03-18 08:27:31 浏览次数:46 分类:技术文章

本文共 3586 字,大约阅读时间需要 11 分钟。

使用CocoaPods的例子

使用过程中遇到的问题

1.CocoaPods提示[!] Unable to find a pod with name matching AFNetworking 或者 [!] Unable to find a specification for AFNetworking

即找不到AFNetworking,解决方法如下:

$ rm -rf ~/.cocoapods$ pod setup$ pod install

2.pod更新,使用pod update命令,但是这样会更新repo,导致更新时间漫长

可使用pod update --no-repo-update,install也一样pod install --no-repo-update

$ pod install --verbose --no-repo-update$ pod update --verbose --no-repo-update

3.使用cocoapods安装libwebp 0.6.0遇到Error installing libwebp

解决方法参考

4.cocoapods位置

pod repo命令可查看仓库的位置,一般位于~/.cocoapods/repos/master

本地缓存的位置~/Library/Caches/CocoaPods/

How to Use CocoaPods with Swift

在Swift中使用CocoaPods

安装CocoaPods,在终端输入如下的命令:

sudo gem install cocoapods

输入密码,终端窗口的输出大概如下:

这里写图片描述

必须使用sudo来安装CocoaPods,但在安装后,就不必再使用sudo了。

然后再在终端输入如下的命令:

pod setup --verbose

这个过程会花费一段时间,它会把克隆到你的电脑 ~/.cocoapods/ 中。

verbose选项是用来输出进度的。

安装完成后,开始编码

下载这个开始
运行后回出现这个界面:
这里写图片描述
用户可以从这个界面选择喜欢的ice cream,但是现在还不行,因为还没完成。
打开Main.storyboard来查看app的布局,如下:
这里写图片描述

  • PickFlavorViewController处理用户的交互
  • PickFlavorDataSource是collection view显示不同种类ice cream的数据源
  • IceCreamView是一个用来显示ice cream的自定义视图,其背后有一个Flavor模型。
  • ScoopCell一个自定义的custom collection view cell,它包含了一个ScoopView,其背后也有一个Flavor模型

包含Flavor实例的数据需要从网络获取。

打开PickFlavorViewController.swift,在Controllers分组的下面,你会发现一个未完成的方法:

private func loadFlavors() {  // Implement this}

你需要自己实现它。

你可以使用NSURLConnection或者NSURLSession,或者你自己定义的网络类,这儿还有一个更简单的方法,使用开源的

安装依赖Installing Your First Dependency

首先关闭Xcode。
打开终端,cd到IceCreamShop工程

cd ~/Path/To/Folder/Containing/IceCreamShop

然后再输入如下的命令

pod init

这样会在你的工程中创建一个文件。

输入如下的命令来用Xcode打开Podfile文件来编辑

open -a Xcode Podfile

默认的Podfile大概看起来是这样的:

# Uncomment this line to define a global platform for your project# platform :ios, '6.0' target 'IceCreamShop' do end target 'IceCreamShopTests' do end

使用如下的内容替换注释的两行:

platform :ios, "8.0"use_frameworks!

这是告诉CocoaPods,你在针对iOS 8.0开发,将会用到frameworks来代替static libraries。

为了在Swift中使用CocoaPods,你必须在include use_frameworks!来使用frameworks。如果你忘记了,就会报错。

关于Libraries

你通常看见的“library”都是指library 或者 framework。但是在本篇教程中,我们不会混淆它。实际上,如果有人说“Swift library”,它指的是“Swift dynamic framework”,因为Swift静态libraries是不被允许的。
你可能会疑惑,“library,framework,和CocoaPod之间的区别是啥”。
CocoaPod,是使用CocoaPod工具把library或者framework添加到你的工程中。
在iOS8中引入了dynamic frameworks,它允许code,image和其他的assets捆绑在一起。在iOS8以前的版本,CocoaPods被创建为static libraries,就是“fat”二进制文件。这意味着它们包含几个代码指令集(例如用于模拟器的i386,用于设备的armv7),但是它们不能含有任何的资源,例如images或者assets。
另一个重要的区别是dynamic frameworks有命名空间类,而static libraries没有。所以,如果你在一个工程中有两个MyTestClass类在不同的static libraries,Xcode将无法编译项目。然而,Xcode可以编译在不同的frameworks中有两个相同名字的类。
不像Objective-C,标准的Swifit的运行时libraries并没有包含在iOS中。这意味着你的framework必须包含包含必要的runtime libraries。其结果是,使用Swift的Pod必须被创建为dynamic frameworks。
幸运的是,CocoaPods已经处理好这些。你所需要做的就是包含_frameworks!。

继续安装依赖

在Podfile第一个target block里,添加如下的内容

pod 'Alamofire', '1.2.3'

这是告诉CocoaPod,你想要包括 Alamofire,版本为1.1.4。

保存并关闭Podfile。
现在你需要告诉CocoaPod来安装依赖。在终端中输入:

pod install

你会看到如下类似的输出:

Analyzing dependenciesDownloading dependenciesInstalling Alamofire (1.1.4)Generating Pods projectIntegrating client project [!] Please close any current Xcode sessions and use `IceCreamShop.xcworkspace` for this project from now on.

打开工程文件,你会发现CocoaPod创建一个新的IceCreamShop.xcworkspace文件和一个Pods文件夹,用来保存所有的工程依赖。

注意:从现在起,如命令行提示的那样,你必须使用workspace,而不是project,否者的话将会报错。

导入

不用在命令行中打开PodFile,你可以直接在workspace中在找到Pods:
这里写图片描述
在Alamofire行的后面输入:

pod 'MBProgressHUD', '~> 0.9.0'

保存,在终端中输入pod install来安装依赖。

~> 0.9.0的意思是安装的最新版本大于或者等于0.9.0,但是不能小于0.9.0。

在OC中使用CocoaPod,请参考

默认的Podfile可能如下:

# Uncomment this line to define a global platform for your project
# platform :ios, “6.0”

target "ShowTracker" do end

把# platform :ios, "6.0"替换为如下的:

platform :ios, "7.0"

转载地址:https://windzen.blog.csdn.net/article/details/46544313 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Xcode应用设置打包相关
下一篇:Xcode中使用Git

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月08日 22时08分23秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章