在桌面上新建文件夹 XXXSDK,然后Xcode新建workspace到该文件夹里

现在项目结构如下:

打开XXXSDK.xcworkspace,File -> New -> Project

demo文件和framework文件都添加到XXXSDK.xcworkspace下

现在项目结构如下:

配置一下项目需要支持的系统和平台

修改Build Setting的一些配置
Build Active Architecture Only 设为NO

Mach-O Type 为Static Library

下面开始创建bundle文件,不需要的可以跳过

创建好了后修改bundle的Build Setting的一些配置
Base SDK设为iOS,Build Active Architecture Only 设为NO

Installation Directory的值删除掉

Versioning System设为None

配置好后就可以往framework里面添加业务代码了
如图我添加了测试代码进来,如果有xib、图片、plist等资源文件,需要加到bundle里面去

把需要暴露的头文件拖到Public下面

在这里引用头文件

XXXSDK和XXXResource分别点击对应的Edit Scheme,把Build Configuration 设置为 Release,XXXSDKDemo也可以在这里设置为Release


接下来引入业务代码需要用到的pod库,不需要的可以跳过
打开终端,cd到主目录创建Podfile文件

然后打开Podfile,按以下格式输入需要的库,需要指明workspace和project,完成后pod install

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
现在项目结构如下:

然后打开项目编译一下bundle和framework
编译成功之后,在demo这里把framework加进来


这里设置为 Do Not Embed

在Build Phases下面把bundle文件添加进来

现在就可以在Demo里面正常访问SDK里面的文件和资源了

bundle的info.plist里面需要把Executable file这项删除,不然上传提审会报错

到此SDK就制作完毕了,如果给别人用时,需要用到podSpec文件引入,参考我的之前的文章。https://www.jianshu.com/p/563df65430d8