Masonry 和 cocopods 介绍及安装步骤
Masonry 是什么、有什么用?
- 出处:Masonry是github开源项目: https://github.com/Masonry/Masonry,
- 作用:一个轻量级的布局框架, 封装了OC的自动布局。
- 特点:采用链式语法、简洁明了、可读性高。
- 平台:支持IOS、OSX。
安装方法(两种方法):
- 方法一、从github下载源码导入项目。(测试版本: Masonry 0.6.1)
- 方法二、用cocopods管理。
- 本文绍介方法一及cocopods的安装和使用,方法二测试没有成功过,待续。
从github下载源码导入项目。(测试版本: Masonry 0.6.1):
- 总步骤有:获取源码、将源码加入项目、定义两个宏、引用Masonry.h。
- 下载源码:https://github.com/Masonry/Masonry;
- 解包后将Masonry文件夹复制到自己的项目文件夹里;
- 用XCODE打开自己的项目,将Masonry文件夹拖入项目,选择COPY;
- 定义两个宏:
#define MAS_SHORTHAND //use Masonry without the 'mas_' prefix
#define MAS_SHORTHAND_GLOBALS //enable auto-boxing for default syntax
- 引用头文件即可使用:
#import "Masonry.h"
- 可添加代码自动完成: 源码解包后复制CodeSnippets文件夹内的所有文件到~/Library/Developer/Xcode/UserData/CodeSnippets即可。
- 注:步骤4和5可以用一个PCH文件实现项目的所有文件自动引用相关定义。
另外源码包解开后有一个README.MD文件,可以看看里面的 ‘## Installation’ 一节
* Xcode6/7 中添加 pch 文件的步骤:*
- 在项目里 (建议添加到 Supporting Files 组里) 添加一个.pch文件:
- 创建文件: right clicked > New File > IOS或OSX > Other > PCH FILE > NEXT > 设置一个名字然后保存.
- 将pch文件完事路径添加到XCODE6: project > Build Settings > Search “prefix” > find ‘Prefix Header’, enter ‘$(SRCROOT)/path/xxx.pch’。(不要引号, build , release 两个都要添加);
- 将Precompile Prefix Header为YES;
- Clean 并且 build 你的项目.
- 配置”xxx.pch文件内容”, 如果一切正常,即可使用:
- xxx.pch内容:
#ifdef __OBJC__
//define this constant if you want to use Masonry without the 'mas_' prefix
#define MAS_SHORTHAND
//define this constant if you want to enable auto-boxing for default syntax
#define MAS_SHORTHAND_GLOBALS
#import "Masonry.h"
#endif
cocopods是什么有什么用?
- 出处:rubygems 的开源项目, https://rubygems.org/ (可能被墙)
- 作用:下载、管理IOS(测试过OC项目)项目的第三方库,创建一个Xcode的workspace来将这些第三方库和我们的工程相连接。
- 特点:自动化的、集中的、直观的管理第三方开源库。
安装CocoaPods:
-
CocoaPods需要Ruby环境,OSX自带。直接运行命令:
$ sudo gem install cocoapods
备注:苹果系统升级 OS X EL Capitan 后改为
$sudo gem install -n /usr/local/bin cocoapods
-
安装结束的时后,执行以下命令:
$ pod setup
注意: 会下载100M多流量, 有点久, 可用 Activity Monitor 看看进度.
-
安装可能遇到的问题:
- 如果没有反应,可能是https被墙,用以下命令更换域名:
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -a http://ruby.taobao.org/
//要想验证是否替换成功了,可以执行:$ gem sources -l
//正常的输出是:*** CURRENT SOURCES ***
https://ruby.taobao.org/
http://ruby.taobao.org/
- gem版本过老
gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案自然是升级gem,执行下述命令即可:$ sudo gem update --system
- 执行 pod setup 报错:
/Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (= 0) among 6 total gem(s) (Gem::LoadError)
from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec'
from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem'
from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `<main>'
这就是路径设置的问题,执行下列命令解决问题:$ rvm use ruby-1.9.3-p448
- 如果没有反应,可能是https被墙,用以下命令更换域名:
- 升级CocoaPods
升级很简单,再次执行安装命令即可$ sudo gem install cocoapods
- 重新安装本地库
$ pod repo remove master
$ pod setup
- 更新本地库
$ pod repo update master
使用CocoaPods
- 进入项目目录, 创建Podfile: CocoaPods的一切都是从一个名为Podfile的文件开始的,先创建。
$touch Podfile
- 编辑Podfile(以安装Masonry为例)
pod 'Masonry'
- 在Podfile文件所在目录,执行下列命令安装三方库:
$ pod install
执行完成后,工程的根目录下多了三个东西:CocoaPodsTest.xcworkspace、Podfile.lock文件和Pods目录。 - 以前的工程文件不使用了,现在使用xxx.xcworkspace文件, 打开它就是我们的项目.
- 工程发生了以下变化:
- 第三方库会被编译成静态库供我们正真的工程使用:
CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程,该工程就放在刚才新生成的Pods目录下。整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的CocoaPodsTest工程使用。 - 我们的工程和第三方库所在的工程会由一个新生成的workspace管理
为了方便我们直观的管理工程和第三方库,CocoaPodsTest工程和Pods工程会被以workspace的形式组织和管理,也就是我们刚才看到的CocoaPodsTest.xcworkspace文件。原来的工程设置已经被更改了,这时候我们直接打开原来的工程文件去编译就会报错,只能使用新生成的workspace来进行项目管理。
- 第三方库会被编译成静态库供我们正真的工程使用:
- 使用一段时间后, 出现莫名其妙的错误时, 可更新一下看看:
sudo gem update —system
sudo gem install cocoapods
pod setup
—完—