iOS framework制作 SDK制作
在桌面上新建文件夹 XXXSDK,然后Xcode新建workspace到该文件夹里
image.png
现在项目结构如下:
image.png
打开XXXSDK.xcworkspace,File -> New -> Project
image.png
demo文件和framework文件都添加到XXXSDK.xcworkspace下
image.png
现在项目结构如下:
image.png
配置一下项目需要支持的系统和平台
image.png
修改Build Setting的一些配置
Build Active Architecture Only 设为NO
image.png
Mach-O Type 为Static Library
image.png
下面开始创建bundle文件,不需要的可以跳过
image.png
创建好了后修改bundle的Build Setting的一些配置
Base SDK设为iOS,Build Active Architecture Only 设为NO
image.png
Installation Directory的值删除掉
image.png
Versioning System设为None
image.png
配置好后就可以往framework里面添加业务代码了
如图我添加了测试代码进来,如果有xib、图片、plist等资源文件,需要加到bundle里面去
image.png
把需要暴露的头文件拖到Public下面
image.png
在这里引用头文件
image.png
XXXSDK和XXXResource分别点击对应的Edit Scheme,把Build Configuration 设置为 Release,XXXSDKDemo也可以在这里设置为Release
image.png
image.png
接下来引入业务代码需要用到的pod库,不需要的可以跳过
打开终端,cd到主目录创建Podfile文件
image.png
然后打开Podfile,按以下格式输入需要的库,需要指明workspace和project,完成后pod install
image.png
use_frameworks!
platform :ios, '9.0'
workspace 'XXXSDK.xcworkspace'
target 'XXXSDKDemo' do
project 'XXXSDKDemo/XXXSDKDemo.xcodeproj'
pod 'AFNetworking'
pod 'MBProgressHUD'
end
target 'XXXSDK' do
project 'XXXSDK/XXXSDK.xcodeproj'
pod 'AFNetworking'
pod 'MBProgressHUD'
end
现在项目结构如下:
image.png
然后打开项目编译一下bundle和framework
编译成功之后,在demo这里把framework加进来
image.png
image.png
这里设置为 Do Not Embed
image.png
在Build Phases下面把bundle文件添加进来
image.png
现在就可以在Demo里面正常访问SDK里面的文件和资源了
image.png
bundle的info.plist里面需要把Executable file这项删除,不然上传提审会报错
image.png
到此SDK就制作完毕了,如果给别人用时,需要用到podSpec文件引入,参考我的之前的文章。https://www.jianshu.com/p/563df65430d8