Swift 创建framework并应用到项目中

iOS 8已经开放了动态库的权限。创建动态库并能运用到兼容iOS7的项目中!

 Carthage & CocoaPods 0.36 对Swift也仅以 Framework 的方式来支持。 更多参见: Library vs Framework in iOS

  • Swift 不在支持静态库,这也就间接放弃了 iOS 7。
  • Framework 就是一个Bundle,将所有的资源(nib, Images, Fonts…)和代码都打包在一起,方便发布。理论上动态库可以单独更新,只是在iOS 上Apple未开放这样的权限。

创建Framework项目

Coding the Framework

Access levels

Framework 中 Coding 唯一要注意的就是代码的访问权限 Access Controller 。这跟写单独应用的不用关心相反,你要时刻注意哪些类、变量、方法是需要对外开放的,哪些是私有的。 

  • Public: accessible everywhere
  • Internal (默认): accessible within any source file from the defining module, but not outside of that module
  • Private: accessible only within its own defining source file

资源打包

如何将资源打包到Framework中。

集成 Framework

在应用项目中,想要集成Framework,有多种方法:

  1. 将Framework项目作为SubProject加入当前项目。
  2. 将生成好的 Framework,拖入项目

Copy the framework during build

Framework 不会被默认打包到项目中,需要在 Build 时 Copy。Cathage 见: Copy Framework

  • 点击 + 创建 New Copy Files Phase 项目 
  • 设置 Destination 为 Frameworks
  • 点击 + 然后选择要Copy的 framework 

使用 Framework

Framework 在Swift中被隐式定义为了模块,使用时,只要引用该模块(也就是Framework)的名字,即可

import MyFramework

可以将swift的framework添加为项目的子项目,也可以直接引用项目生成的framework文件

最后一点很重要:

有一点和oc的framework不同,这里需要在target ->General ->Embedded Binaries 中添加这个framework,添加成功后会自动在Linked Framework and Libraries中自动添加这个framework,如果只在Linked Framework and Libraries中添加这个framework会导致库无法载入(OC创建的framework应该是正常的),项目无法运行



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值