1. 前言
在项目的开发过程中我们经常会使用到很多的第三方框架,通过CocoaPods我们可以非常容易的去管理这些第三方库,那如何发布自己的第三方呢?我将用两篇文章的去详细介绍制作及部署过程,这是framework制作篇,该系列文章链接如下
2. 主工程制作
2.1. 先在gitlab(你也可以在github)上建一个主工程,这个工程你包括使用framework的demo工程及framework本身。我这里是用demo为名字作为仓库的名字。
2.2. git到本地。
~/Desktop/Temp $ git clone git@gitlab.xxxxx.com:xiujidemufu/RFKitDemo.git
Cloning into 'RFKitDemo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
2.3. 新建workSpace、RFKitDemo、RFKit
-
在本地仓库目录下创建RFKitWorkSpace。
-
在本地仓库目录下创建RFKitDemo工程,并加入到RFKitWorkSpace。
-
在本地仓库目录下创建RFKit framework工程,并加入到RFKitWorkSpace。
注意要加入到RFKitWorkSpace中
-
最终本地目录
-
最终RFKitWorkSpace目录
2.4. 使用CocoaPods将 RFKit与RFKitDemo关联
- cd 到根目录,新建Podfile文件
~/Desktop/Temp/RFKitDemo $ touch Podfile
打开编辑 Podfile文件
use_frameworks!
platform :ios, '11.0'
# workspace文件名
workspace 'RFKitWorkSpace.xcworkspace'
def pods
pod 'UMCCommon'
pod 'UMCPush'
end
# 主工程
project 'RFKitDemo/RFKitDemo.xcodeproj'
target 'RFKitDemo' do
# 测试RFKit的demo不用暴露
# project './RFKitDemo/RFKitDemo.xcodeproj'
end
target 'RFKit' do
# RFKit把本身暴露出去给RFKitDemo,用于调试
project './RFKit/RFKit.xcodeproj'
# RFKit 本身依赖
pods
end
Podfile文件编辑好后,pod install,就能得到下面的工程目录
2.5. 添加库文件及测试RFKit
在RFKit项目里面添加一个测试文件,里面申明了一个测试类,如下图
选择RFKit工程作为你要编译的对象,运行一次。
注意:每次增删改查务RFKit工程,务必运行一次,以保持对外暴露给RFKitDemo的代码是最新的
切换到RFKitDemo工程
导入RFKit进行测试,我这里是在ViewController文件中测试的,没有报错,运行成功就说明 原RFKit库没问题。
ViewController文件在点击RFKit进入内部查看,可以看到RFkit已经是一个库了,这就是为什么要每次增删改查务RFKit工程,务必运行一次的原因
3.framework导出
上面的步骤大体上已经完成了framework的制作,那么如何提供给他人使用呢?
3.1. framework导出:方法一-手动导出
可以在products文件中show in finder,然后提供给提三方使用。但是这里面会涉及到编译架构问题,具体点就是真机和模拟器。每次都要手动去操作,并且涉及到一些 终端操作。就不推荐了。重点看方法二-脚本自动导出。
3.2. framework导出:方法二-脚本自动导出
上面说到手动导出涉及到一系列的操作,聪明的程序就用写了个脚本让它帮我们干这些事情。
3.2.1. 生成aggregate target
选中 RFkit,新建新的target-->RFKitAggregate
可以看到RFkit project的target目录有了两个target
选中 RFKitAggregate -- Build Phases -- 点击+ New Run Script Phase
可以看到出现了 Run Script 选项配置页面
去这个地址下载脚本 universal-framework.sh,将其加入到RFKit项目目录,填写source 路径:
source "${PROJECT_DIR}/RFKit/universal-framewor.sh"注意,我这里是RFKit,你得填你自己的项目名字。
选中RFKitAggregate target,点击运行,就会有编译好的framework会自动弹出所在文件夹(脚本里面写得自动打开)
图中的RFKit.framework就是通过脚本生成的库。
到这里 framework就已经完全制作完毕。那么如何把它放到cocoapods上让大家只需要通过 pod install就能安装呢?请看下一篇iOS - framework制作|CocoaPods部署- (2)CocoaPods部署