用Carthage构建自己的Framework
用Framework的方式来管理公共代码是个不错的选择,Framework的好处也是多多的:
- 本质上是个bundle,不仅可以打包代码,还可以打包资源Assets、视图XIB等
- 可以有选择的开放头文件、接口,避免了用CocoaPods集成子项目时,所有代码全部暴露的问题,只暴露需要的,代码更加清晰。
- 从iOS 8开始支持的Cocoa Touch Framework可以支持动态Framework,能在主App和各种Extension之间共享一份二进制目标代码,加快应用加载速度,减小体积,加快编译速度等。
基于Cocoa Touch Framework动态框架的种种优点,“去中心化”的轻量级依赖包管理工具,Carthage也越来越受欢迎。
创建Framework
创建Framework的过程非常简单,Xcode 6以后就有了Framework项目模板,直接选中”Cocoa Touch Framework”模板,按照提示来即可。Swift的话,将要暴露的类、方法标记public,OC的话在Build Phases
- Headers
- Public
加入需要暴露的头文件即可。
使用Carthage创建Framework
Carthage只支持构建标记为“Shared”的项目Target,所以创建好了Framework工程后,还要设置Scheme为“Shared”,可以在当前Scheme的Edit Scheme
里面设置,也可以在Xcode的菜单 Product
- Scheme
- Manage Schemes
里面设置。
然后将Framework工程推送到Git仓库中,记住打上版本号tag。
|
下面有一篇详细教程:
Matt Condon’s Blog - Making Carthage-compatible Frameworks with Swift
总结一些iOS项目中组织代码的方法