使用Carthage管理SwfitJSON整合中遇到的问题
- 第一次写博客还是很激动的,以前只是在遇到问题的时候才到处翻别人的博客。还记得有一次面试的时候,人家问我写过多少博客,还真不好意思说”只看不写”……
- 好了不废话,直接上问题。随着Swfit2的发布,他的影响力更进一步提升,让很多OC开发者慢慢在向Swift装,github上Swift开源代码也越来越多了。Cocoapods是神一样的存在,但是Carthage却Carthage不会完全独立,不会修改Xcode项目文件或者配置,从而俘获一些程序猿的心,至于用法随便搜搜一堆一堆的,这里就不在啰嗦了。
- 在网上找了一堆教程开始学习,SwiftJSON是另一个非常优秀的JSON处理库,但是在与Carthage整合的过程中却发现,SwiftJSON的代码下载下来了但是总是生成不了Framework(别急,这儿我就是来解决这个问题的)。这里贴出我的Cartfile:
#使用最新版本
github "SwiftyJSON/SwiftyJSON" >= 2.2.0
执行Carthage update
却总是不报错也没有生成Framework,我一度怀疑SwiftJSON的作者是不是压根就没支持Carthage或者我的Carhage没配置好等等,各种百度前前后后折腾了半个月。今天我腾出时间特意加了句github "Alamofire/Alamofire" >=1.2
,奇迹出现了,它报错了并且生成了Alamofire.framework,但是跟SwfitJSON相关的还是啥也没有。现在基本可以确定就是SwiftJSON和Carthage整合是的bug了,这时候才想到github还有issue(真是惭愧),还真让我立马发现了端倪,人家老外在6月7号就发现这个问题(好像是更新Swift2之后),而且SwfitJSON和Carthage的作者都沟通过,还给出问题所在和解决方案。这里简单所以下:由于SwiftJSON的库下面包含了Example.xocdeproj
文件,导致build直接失败,而且还不会报错。解决方法也很简单,直接删除Example.xocdeproj
或者移到其他目录,而且还有个大神fork了SwiftJSON解决了这个问题(当然这个最好还是Carthage的作者在下一个版本中修复,不然总不能要求里面不能有Example.xocdeproj
吧)。这里贴出我的结果: - 注意:此处我删除
Example.xocdeproj
之后用的是carthage build
,因为如果直接carthage update又会重新生成的(我理解这样,没试过),当然也可以用Thomvis/SwiftJSON,这个是大神修复的。最后贴上我找到的两个连接,里面说得肯定比我清楚,这里就是给英语不太好的小伙伴准备的。第一次写博客,口味不对的还望见谅。。。
SwiftJSON作者的解释https://github.com/SwiftyJSON/SwiftyJSON/issues/248
Carthage作者的解释https://github.com/Carthage/Carthage/issues/532