本文即谢了如何配置,配置过程中遇到的坑也总结了,目前发现如何配置RAC这方面的文章太少了,其实坑还是有一点的,这些坑都需要google 才能解决
正题
使用CocoaPods在使用之前,确保你需要的库在Specs repository或者cocoapods.org上可以查询到。在新的项目中使用CocoaPods
创建一个新的Xcode项目。步骤如下:
一) 为项目添加cocoapod,已经添加过cocoapod 忽略此步
- 打开终端,执行
$ cd your project direction
,进入到你的项目目录下,前提是新建一个项目哦。
- 打开终端,执行
-
$ touch Podfile
创建一个Podfile文件。打开Podfile,推荐使用终端打开,cd 到Podfile 文件下在第一行写下platform :ios, '8.0'
指定平台以及所支持的版本。
-
- 在单独一行用
pod 'libraryName'
,指定需要导入的依赖。
- 在单独一行用
如何使用ReactiveCocoa
ReactiveCocoa可以在iOS和OS X的应用开发中使用,对于iOS开发者,可以将RAC源码下载编译后,使用编译好的libReactiveCocoa-iOS.a
文件。
开发者也可以用CocoaPods来设置目标工程对ReactiveCocoa的依赖,只需要编辑Podfile文件,增加如下内容即可:
pod 'ReactiveCocoa', ‘4.0' 目前的最新的
或者
pod 'ReactiveCocoa
- CocoaPods提供
$ pod init
,可以为我们创建具有模板的Podfile文件。在$ pod install
执行完成之后,会生成一个projectName.xcworkspace文件,之后使用这个文件来打开项目。
- CocoaPods提供
- 在终端中执行
$ pod install
,就会为项目导入执行的依赖。
- 在终端中执行
**可能问题 Setting up CocoaPods master repo 一直不动
终端中输入 cd ~/.cocoapods 再输入 du -sh * 查看下载了多少 **
一直不动,解决方案见我的文章: CocoaPods update 慢的较好的解决方案
cocoapod 安装好后,执行如下命令 打开podfile 文件并编辑
//3.0.0需要最底8.0的ioS部署系统 否则会报错提示的
platform :ios, ‘8.0‘
//use_frameworks! 一定要加的,感叹号也不能少
use_frameworks!
target “demo” do
pod 'ReactiveCocoa', ‘3.0’
end
//上面的那个会报错 解决方案在这头文件找不到的报错解决方案
platform :ios, ‘8.0‘
use_frameworks!
target ‘demo’ do
pod 'ReactiveCocoa’, :podspec => 'https://gist.githubusercontent.com/PaulTaykalo/04f8e2ee25b9d57f03455ccafd541b34/raw/e94f3bec7a9450ecd0f0cdc9b4899deb0b91d758/ReactiveCocoa.podspec.json'
end
wanggangdeMacBook-Pro:demo wanggang$ open -e /Users/wanggang/Documents/demo/Podfile
wanggangdeMacBook-Pro:demo wanggang$ pod install
最后安装成功了
wanggangdeMacBook-Pro:demo wanggang$ pod install
Analyzing dependencies
Downloading dependencies
Installing Box (1.2.2)
Installing ReactiveCocoa (3.0.0)
Installing Result (0.4.4)
Generating Pods project
Integrating client project
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 3 total
pods installed.
[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.
wanggangdeMacBook-Pro:demo wanggang$
二) pod install 成功后build project 坑总结
安装成功了打开工程的.xcworkspace,并不会一番就可以顺利编译通过
2.1) 会出现如下错误:
上面的错误 在pod的target中选一个证书就可以了,pods-demo,ReactiveCocoa,Result 三个红色箭头指的地方都要选择
2.2)下面的错误 需要信任证书
,这是xcode8 的新特性,以前只有企业账号才需要信任证书,现在开发账号也需要了,去设置->通用->描述文件, 点击信任证书,就可搞定
2.3) 报错的EXTKeypathCoding.h等几个.h 文件 找不到
,有同学说pod 'ReactiveCocoa’
修改为pod 'ReactiveCocoa’,:podspec => 'https://gist.githubusercontent.com/PaulTaykalo/04f8e2ee25b9d57f03455ccafd541b34/raw/e94f3bec7a9450ecd0f0cdc9b4899deb0b91d758/ReactiveCocoa.podspec.json'
,就可以解决.h文件会报错的问题,发现不好用,我的方法是加上RAC 的前缀就可以,好几个文件,都需要加RAC 的前缀,只要说找不到文件,就加RAC 前缀,就可以通过,当然也有其他的办法,发现不是完全解决.
加了前缀后的文件如下所示:
2.4) 会有报错swift 文件错误,主要是语法错误
如果项目中没有用到swift ,直接可以删除掉ReactiveCocoa 库中的所有swift 文件,即可变异通过.至此所有的问题都解决了,就可以愉快的玩啥RAC了.
去google 搜索相关的报错,很多老外都说集成RAC 会有a lot of trouble 的,trouble 我都解决了 ,分享出来,有问题欢迎留言.
2.5) 附上demo的podfile 文件 ,这个可能会用的上
使用RAC 2.0版本的podfile 文件,RAC 2.0 版本库里面就不会有swift 了
platform :ios, ‘8.0‘
use_frameworks!
target ‘demo’ do
pod 'ReactiveCocoa’,2.0
end
使用RAC 4.0版本的podfile 文件,RAC 4.0 版本库里面有swift 了文件,支持swift3 ,但是swift会报错,我用xcode8 和xcode7.2 试的
platform :ios, ‘8.0‘
use_frameworks!
target ‘RACDEMO4’ do
pod 'ReactiveCocoa’,:podspec => 'https://gist.githubusercontent.com/PaulTaykalo/04f8e2ee25b9d57f03455ccafd541b34/raw/e94f3bec7a9450ecd0f0cdc9b4899deb0b91d758/ReactiveCocoa.podspec.json'
end
上面的两个podfile 文件两个选择一个就行了,兼容swift选择后者,不兼容swift 选择前者即可
0710补充在公司电脑安装过程:
1)touch Podfile
,
2$ open -e /Users/hlh/Downloads/SVNCode0125/0928shangchuanAPPstore-SVN/Podfile ,
platform :ios, ‘7.0‘
use_frameworks!
target ‘ZhuRenWong’ do
pod 'ReactiveCocoa’,2.0
end
3)$ pod init
$ pod install
- 警告
[!] The `Paopao [Release]` target overrides the `PODS_ROOT` build setting defined in `Pods/Target Support Files/Pods/Pods.release.xcconfig'. This can lead to problems with the CocoaPods installation- Use the `$(inherited)` flag, or- Remove the build settings from the target.文/Nidalee丶
如下方法慎用,
项目其他地方需要-objc-(比如环信)会出现崩溃,解决方法,把删除的objc加上
ps:第一次为项目集成cocoa pod 和RAC项目所有的文件都需要提交, 另外第二次提交 workspace 尽量少提交避免冲突
______
- 作者开发经验总结的文章推荐,持续更新学习心得笔记
[Runtime 10种用法(没有比这更全的了)](//www.greatytc.com/p/3182646001d1)
[成为iOS顶尖高手,你必须来这里(这里有最好的开源项目和文章)](//www.greatytc.com/p/8dda0caf47ea)
[iOS逆向Reveal查看任意app 的界面](//www.greatytc.com/p/060745d5ecc2)
[JSPatch (实时修复App Store bug)学习(一)](//www.greatytc.com/p/344db07a2374)
[iOS 高级工程师是怎么进阶的(补充版20+点)](//www.greatytc.com/p/1f2907512046)
[扩大按钮(UIButton)点击范围(随意方向扩展哦)](//www.greatytc.com/p/ce2d3191224f)
[最简单的免证书真机调试(原创)](//www.greatytc.com/p/c724e6282819)
[通过分析微信app,学学如何使用@2x,@3x图片](//www.greatytc.com/p/99f1f924ae45)
[TableView之MVVM与MVC之对比](//www.greatytc.com/p/d690b5d97201)
[使用MVVM减少控制器代码实战(减少56%)](//www.greatytc.com/p/f85363c82ea1)
[ReactiveCocoa添加cocoapods 配置图文教程及坑总结](//www.greatytc.com/p/66f0c7e1ced8)