因为最近我们公司的一个客户要求我们使用swift编写程序并且将API封装成framework的形式提供给他们,所以我就开始了swift实践之路。

程序编写完之后,我就琢磨怎么封装成framework的形式,因为swift不像OC,分.h和.m的形式,那么只暴露.h出来即可,而swift是所有实现都在一个文件里,会不会把源码暴露啊?怀着这个疑问,今天上午查了资料自己实践了一下,搞定。

第一步:Xcode->File->New->Project,选择Cocoa Touch Framework,语言选择swift,然后Deployment Target我选择了最低8.0

可以看到默认生成了一个.h和plist文件,这个.h文件里你可以导入你使用的一些OC文件,因为framework里不支持桥接文件,而OC的文件必须得import,所以就有了这么一个.h文件啦,如果你没用到任何OC文件,那就什么都不用导入了。info.plist就是正常的配置文件啦。

第二步:把你之前写好的swift文件都拖进来,在这里我拖入了我之前已经写好的蓝牙模块文件,统一放在BleModule文件夹下

第三步:Edit Scheme->Run->Build Configuration->Debug/Release,分别对应测试环境和生产环境

然后Command+Build,编译即可生成我们要的framework了,右键Show in Finder,就找到生成的framework了。

接下来测试一下framework能否使用:

第一步:新建一个工程,我的工程命名为HeHaSwiftDemo,将刚才生成的framework拷贝到新工程路径下

第二步:点击工程->Target->General,然后在Embedded Binaries和Linked Frameworks and libiaries选项卡下将刚才路径下的framework导进来。

第三步:编译一下工程没有问题,然后就可以使用了,在需要使用framework的地方import一下,这个BleAPI就是我的framework的名称,然后就能使用啦。

点进去看一下会发现里面的文件都是你暴露出的带有public修饰符的函数,代理方法,属性变量以及一些宏定义等,而具体的实现是不可见的,哈哈,我的担心是白担心

最后,项目已经放到了我的github上,链接:https://github.com/krisouljz/LearningGit.git

最新文章

  1. LeetCode 292. Nim Game
  2. AutoIt操作Windows GUI实现文件上传
  3. Python-day3作业-haproxy配置文件管理脚本
  4. Install R & RStudio for Ubuntu
  5. SER SERVER存储过程
  6. IntelliJ IDEA 项目相关的几个重要概念介绍
  7. 【redis】05Redis的常用命令及高级应用
  8. Apache+Tomcat +mod_proxy集群负载均衡及session
  9. 这几天阅读的shadowgun的几个shader
  10. [SCOI2008]城堡
  11. Eclipse显示行号
  12. vue的渐进式理解
  13. 《python for data analysis》第七章,数据规整化
  14. 对MariaDB10.0的Sphinx进行扩展
  15. Python3+ssl实现加密通信
  16. 1044 Shopping in Mars (25 分)
  17. UVA-1617 Laptop (贪心)
  18. 【BZOJ】1635: [Usaco2007 Jan]Tallest Cow 最高的牛(差分序列)
  19. DB数据源之SpringBoot+MyBatis踏坑过程(五)手动使用Hikari连接池
  20. 正则,re模块

热门文章

  1. spring-Ioc学习笔记
  2. js 关于replace() 的使用心得
  3. PPT文档学习小练习链接
  4. 使用Kubernetes两年来的7大经验教训
  5. k8s中的nginx-ingress如何配置路径重定向
  6. 【记录一个问题】thanos receiver在tsdb切换期间,导致remote write接口失败增加
  7. 【记录一个问题】opencv + cuda编译release版本后,链接出现奇怪的符号
  8. C# 代码性能优化举例
  9. python中grpc配置asyncio使用
  10. 使用MobaXterm发布服务器项目文件