制作Framework && 自动化

Framework的制作

一、制作过程.

1.以SDWebImage为例

  • 创建framework工程
    制作Framework && 自动化

  • 修改Build Settings中配置制作Framework && 自动化

制作Framework && 自动化

  • 下载好最新的SD,地址:https://github.com/rs/SDWebImage,拷贝源码到此工程;或者直接使用SD现有的工程,修改以上配置信息;然后修改为Release,如下图:
  • 点击Edit Scheme :制作Framework && 自动化
  • 修改Build Configuration:制作Framework && 自动化
  • 编译 cmd+b ,这里需要编译两次一次是真机设备,一次是模拟器;编译完成后,打开下图SDWebImage.framework所在的目录:制作Framework && 自动化
  • 打开终端:cd 到Products所在的目录(可以直接将Products拖到终端):制作Framework && 自动化
  • 如下:制作Framework && 自动化
  • 下面通过命令合并真机设备和模拟器framework:制作Framework && 自动化
  • 将新生成的framework替换Release-iphoneos或者Release-iphonesimulator下面的:制作Framework && 自动化
  • 将替换完的SDWebImage.framework拷贝到项目中如图:制作Framework && 自动化
  • 下面就可以修改项目中SDWebImage.podspec的引入方式为s.ios.vendored_frameworks = ‘Frameworks/SDWebImage.framework’;完事!!!

2.自动化

  • 分别编译模拟器和真机,自动执行脚本生成framework
    首先添加Run Script制作Framework && 自动化

制作Framework && 自动化

  • 在工程目录下添加文件夹ToolScripts,把脚本createFramework.sh放进去;
  • 先编译模拟器,再编译真机;会看到如下弹窗:合并完成。
    制作Framework && 自动化

二.遇到的问题

  • 编译到最后出现个弹窗:

制作Framework && 自动化

这是因为自己制作的framwork和项目中的bundle不一致造成的,在制作之前,先修改SDWebImage的和项目中的保持一致,再重复以上步骤,最后cmd+shift+k清理一下缓存即可。