CocoaPod是一个用ruby实现,用于方便的管理Xcode中第三方插件的管理器.用它我们可以很方便的安装和升级插件而不用担心破坏原有的项目.

而pop是一个用于实现App中动画的引擎,它是由Facebook开源的,如果本猫没记错的话 ;]

下面简单聊聊如何在最新的Xcode中安装pop

首先你必须在mac上安装ruby,无论你使用rvm还是从源代码自己编译生成.

接着打开终端输入如下指令:

sudo gem install cocoapods

玩过ruby的都知道,这是通过ruby安装gem

根据你的系统已安装需要gem的数量,最后会显示

x gems installed

那么这样CocoaPod就安装完成了.

接着使用Xcode打开你需要继承pop引擎的项目,然后用iOS\Other\Empty模版新建一个文件,起名为Podfile,其实它就是一个普通的文本文档。打开给文件输入如下内容:

target 'PopSoccer' do
    pod 'pop','~>1.0'
end

注意,原来的写法不需要写target块,但是最新的CocoaPod会对老的写法报错,错误内容如下:

[!] The dependency `pop (~> 1.0)` is not used in any concrete target.

所以我们必须写一个target块将实际的依赖包括进去。

注意依赖版本的语法,我们只需要最新的1.0.x版本,但是不需要1.1或更高的版本!这是因为1.x以后的版本可能和1.0.x版本有较大的变化,所以我们选择1.0.x版本。

不过如果你不在乎这些,只是想用最新的pop版本,那你完全无所谓这些了。

保存你的Podfile,完全关闭Xcode,从控制台进入你刚才添加Podfile项目的文件夹,运行如下命令:

pod install

第一次运行会比较慢,提示如下:

Setting up CocoaPods master repo

接着会出现如下内容(在我的mac上):

Analyzing dependencies
Downloading dependencies
Installing pop (1.0.9)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `PopSoccer.xcworkspace` for this project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total
pod installed.

OK!注意最后提示你将来再打开该项目都要通过PopSoccer.xcworkspace,而不是原来的项目文件了,这点切记!

从Xcode打开该项目,你会发现该项目空间包括了原有项目和一个新的Pods项目,打开该Pods项目,你会在Pods目录中找到你刚才安装的pop引擎。

Xcode7.3.1中通过最新的CocoaPod安装pop动画引擎的更多相关文章

  1. POP动画引擎中Layer与CALayer的一点区别

    POP动画引擎是facebook提供的一个开源框架, 可以实现很多的动画效果, 这里就不一一介绍啦, 有兴趣的童鞋请移步: https://github.com/facebook/pop 下面简单的讲 ...

  2. 谷歌(GDG):智能技术在物联网及移动互联网中的最新应用讲座

       谷歌开发者社区GDG(原谷歌技术用户组GTUG),将于11月23日(周六)下午 1:30-5:00,在北京翠宫饭举办一场智能技术在物联网及移动互联网中的最新应用讲座,培训讲座中将通过三个专题与众 ...

  3. vs2010一运行就报错deven.exe assert failure 解决方法,卸载系统中.netFramework最新版本的(简体中文)

    vs2010一运行就报错deven.exe assert failure 解决方法,卸载系统中.netFramework最新版本的(简体中文)

  4. oracle 中从一个历史表中查询最新日期数据插入到另一个表中语句

    先从历史表中查询最新的一个语句: select t.id from ( select r.*, row_number() over(partition by r.分组字段 order by r.排序时 ...

  5. 博客中gitalk最新评论的获取 github api使用

    博客中,对于网友的评论以及每篇文章的评论数还是很重要的.但是基于静态的页面想要存储动态的评论数据是比较难的,一般博客主题中都内置了评论插件,但是博客主题中对于最新评论的支持显示还是很少的,至少目前我是 ...

  6. python实现获取文件夹中的最新文件

    实现代码如下: #查找某目录中的最新文件import osclass FindNewFile: def find_NewFile(self,path): #获取文件夹中的所有文件 lists = os ...

  7. 浅析py-faster-rcnn中不同版本caffe的安装及其对应不同版本cudnn的解决方案

    浅析py-faster-rcnn中不同版本caffe的安装及其对应不同版本cudnn的解决方案 本文是截止目前为止最强攻略,按照本文方法基本可以无压力应对caffe和Ross B. Girshick的 ...

  8. 关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思

    关于在windows10中的vmware9.0里面安装的ubuntukylin15.04和windows共享目录的一些反思 一.遇到的问题      如题目所说,在windows的虚拟机中和windo ...

  9. 【adb命令】在cmd窗口中使用adb install命令安装 中文名字apk报错的解决办法

    1.在cmd窗口中使用adb install命令安装中文名字apk报错,安装英文名字apk就正常,详细报错如下图: 2.查看adb版本号:adb version 3.怀疑是adb版本的原因,尝试换个最 ...

随机推荐

  1. [LeetCode] Find Mode in Binary Search Tree 找二分搜索数的众数

    Given a binary search tree (BST) with duplicates, find all the mode(s) (the most frequently occurred ...

  2. [APIO 2012]派遣

    Description 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿. 在这个帮派里,有一名忍者被称之为Master.除了Master以外,每名忍者都有且仅有一个上级.为 ...

  3. 【bzoj3173-最长上升子序列-一题两解】

    这道题不就是简单的DP吗,BZOJ在水我!不,你是错的. ·本题特点:       不断向不同位置插入数字(按数字1,2,3,4,5,6……),需要求出每一次插入后的最长上升子序列. ·分析      ...

  4. SpringCache学习之操作redis

    一.redis快速入门 1.redis简介 在java领域,常见的四大缓存分别是ehcache,memcached,redis,guava-cache,其中redis与其他类型缓存相比,有着得天独厚的 ...

  5. CentOS 7 安装MySQL 5.6遇到问题及解决方案

    centos下安装mysql真的没有想象中那么容易,在这里我总结一下遇到的问题 1. ERROR 2002 (HY000): Can’t connect to local MySQL server t ...

  6. mysql中binlog与存储引擎的2PC

    mysql内部的2PC mysql开启binlog后实际上可以认为其数据有两份,binlog中一份,引擎中一份(这里先把存储引擎中数据看成整体的单独一份,另外也可以把binlog看成是一个引擎).既然 ...

  7. 【Python系列】HDF5文件介绍

    一个HDF5文件是一种存放两类对象的容器:dataset和group. Dataset是类似于数组的数据集,而group是类似文件夹一样的容器,存放dataset和其他group.在使用h5py的时候 ...

  8. glusterfs 4.0.1 rpc 分析笔记1

    Jimmy的文档:Glusterfs的rpc模块分析 第一节.rpc服务器端实现原理及代码分析 第二节.rpc客户端实现原理及代码分析 第三节.rpc通信过程分析 经过阅读源码对比之前提及的文档,我个 ...

  9. 备忘:MySQL中修改表中某列的数据类型、删除外键约束

    -- MySQL中修改表中某列的数据类型 ALTER TABLE [COLUMN] 表名 MODIFY 列名 列定义; -- 删除外键约束 SHOW CREATE TABLE 表名; -- 复制CON ...

  10. 数组中存放对象之java中定义类数组存放类

    public class ClassArrayDemo { int age; String name; ClassArrayDemo(int age, String name) { this.age ...