在桌面上新建文件夹 XXXSDK,然后Xcode新建workspace到该文件夹里
![](https://img.haomeiwen.com/i4330243/720421a5b8d50b7d.png)
现在项目结构如下:
![](https://img.haomeiwen.com/i4330243/d3c6be9ff4af4c49.png)
打开XXXSDK.xcworkspace,File -> New -> Project
![](https://img.haomeiwen.com/i4330243/8b88cb525b4a098a.png)
demo文件和framework文件都添加到XXXSDK.xcworkspace下
![](https://img.haomeiwen.com/i4330243/07b876e3048ef29d.png)
现在项目结构如下:
![](https://img.haomeiwen.com/i4330243/04070997e7ea8c94.png)
配置一下项目需要支持的系统和平台
![](https://img.haomeiwen.com/i4330243/660e7d3e4b4e5ae0.png)
修改Build Setting
的一些配置
Build Active Architecture Only
设为NO
![](https://img.haomeiwen.com/i4330243/88198a1f3fea0798.png)
Mach-O Type
为Static Library
![](https://img.haomeiwen.com/i4330243/84c5953eeadf57e4.png)
下面开始创建bundle文件,不需要的可以跳过
![](https://img.haomeiwen.com/i4330243/69769f0188ae998f.png)
创建好了后修改bundle
的Build Setting
的一些配置
Base SDK
设为iOS
,Build Active Architecture Only
设为NO
![](https://img.haomeiwen.com/i4330243/e6ced91e4012e8aa.png)
Installation Directory
的值删除掉
![](https://img.haomeiwen.com/i4330243/c7525ced9a358536.png)
Versioning System
设为None
![](https://img.haomeiwen.com/i4330243/c1b7a04f6090bdb2.png)
配置好后就可以往framework里面添加业务代码了
如图我添加了测试代码进来,如果有xib、图片、plist等资源文件,需要加到bundle里面去
![](https://img.haomeiwen.com/i4330243/b83370c451c672b1.png)
把需要暴露的头文件拖到Public
下面
![](https://img.haomeiwen.com/i4330243/421d21ff4bd81d48.png)
在这里引用头文件
![](https://img.haomeiwen.com/i4330243/7e59ee62602ce368.png)
XXXSDK
和XXXResource
分别点击对应的Edit Scheme
,把Build Configuration
设置为 Release
,XXXSDKDemo
也可以在这里设置为Release
![](https://img.haomeiwen.com/i4330243/82c4883308219cb5.png)
![](https://img.haomeiwen.com/i4330243/3c5b0faf2bd8e02c.png)
接下来引入业务代码需要用到的pod库,不需要的可以跳过
打开终端,cd到主目录创建Podfile
文件
![](https://img.haomeiwen.com/i4330243/f4bb7043d03081f7.png)
然后打开Podfile
,按以下格式输入需要的库,需要指明workspace
和project
,完成后pod install
![](https://img.haomeiwen.com/i4330243/8264af262205cfee.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
现在项目结构如下:
![](https://img.haomeiwen.com/i4330243/74197cfcd4cafd7f.png)
然后打开项目编译一下bundle和framework
编译成功之后,在demo这里把framework加进来
![](https://img.haomeiwen.com/i4330243/6426a98591d4bfde.png)
![](https://img.haomeiwen.com/i4330243/3169e35a294b63c9.png)
这里设置为 Do Not Embed
![](https://img.haomeiwen.com/i4330243/5a2efe98a8e3ad8f.png)
在Build Phases
下面把bundle
文件添加进来
![](https://img.haomeiwen.com/i4330243/69d6ed51930600f6.png)
现在就可以在Demo里面正常访问SDK里面的文件和资源了
![](https://img.haomeiwen.com/i4330243/d4b58c286f15a198.png)
bundle
的info.plist
里面需要把Executable file
这项删除,不然上传提审会报错
![](https://img.haomeiwen.com/i4330243/4c92d272a7cd8301.png)
到此SDK就制作完毕了,如果给别人用时,需要用到podSpec文件引入,参考我的之前的文章。https://www.jianshu.com/p/563df65430d8
网友评论