iOS - framework制作|CocoaPods部署- (1)framework制作

2,100 阅读3分钟

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部署

参考