iOS制作framework最新教程

目录

目录

目录

一、开发环境

二、Framework制作步骤

1.创建framework工程

2.添加需要打包的文件

​编辑

3.配置项目参数

1.设置Mach-O Type 为Static Library

扫描二维码关注公众号,回复: 15997849 查看本文章

 2.设置Dead Code Stripping 为NO 

3.设置Link With Standard Libraries为NO

4.设置Excluded Architectures

4.创建Aggregate Target

1.选中Target,点击左下角的+

2.选择Other---Aggregate

3.添加脚本

4.Script脚本如下:

5.生成framework

 三、测试Framework

1.创建测试项目

2.添加测试代码

四、文章中测试Demo 



前言

         最近有这么一个需求:把自己的代码打包成framework,供其它语言调用,上网查了下资料,参考了很多文章,感觉比较繁琐,写篇文章记录下,希望能帮到需要的朋友们。


提示:以下是本篇文章正文内容,下面案例可供参考

一、开发环境

Xcode 14.3.1

MacOS: 13.5 (22G74)

二、Framework制作步骤

1.创建framework工程

        这里以HelloWorld为例,步骤如下:

        依次选择File-project-frame ,给项目起个名称,截图如下: 

                                图1.选择framework作为项目类型

图2.创建项目的两个必选项 

        这里需要注意的是创建项目的时候有两个可选项:Include Test 和Include Documentation,一个是写测试单元代码的,一个是framework的说明文档,我这里没有勾选。

        创建好项目之后,工程代码结构如下如:   

           

图3.项目工程目录

2.添加需要打包的文件

        这里我创建了一个HelloWorldTools的文件,主要用来演示用,代码如下:

        图4.HelloWorldTools.h

        图5.HelloWorldTools.m文件

        选中项目的Target,把刚才的头文件移动到public中,具体参考下图

 图6.移动文件

        然后再创建framework时候生成的HelloWorldFramework.h中导入该文件,如下如:

        图7.导入需要公开的头文件 


3.配置项目参数

1.设置Mach-O Type 为Static Library

图8.设置Mach-O Type

 2.设置Dead Code Stripping 为NO 

 图9.设置Dead Code Stripping

3.设置Link With Standard Libraries为NO

 图10.设置Dead Code Stripping

4.设置Excluded Architectures

4.设置Framework支持的最低版本号 

图10.设置framework支持的最低版本号

4.创建Aggregate Target

1.选中Target,点击左下角的+

        这里要注意下,选择Project是看不到Aggregate这个选项的。

        图11.添加Aggregate

2.选择Other---Aggregate

  图12.添加Aggregate

3.添加脚本

        这段脚本的作用是自动合并真机和模拟器的framework。

 图13.添加Run Script脚本

把下面的脚本粘贴到Script Phase中:

                 图14.添加Run Script脚本

4.Script脚本如下:

# Type a script or drag a script file from your workspace to insert its path.

    if [ "${ACTION}" = "build" ]

then

INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework

DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework

SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework

if [ -d "${INSTALL_DIR}" ]

then

rm -rf "${INSTALL_DIR}"

fi

mkdir -p "${INSTALL_DIR}"

cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"

#ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"

lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"

#open "${DEVICE_DIR}"

open "${SRCROOT}/Products"

fi

5.生成framework

1.分别选中target和Aggregate,把Build Configuragtion改为release.

15.修改Target的build configuration为release

 16.修改Target的build configuration为release

  17.修改Target的build configuration为release

2.编译生成framework

       1.选中Target,然后分别选中模拟器和真机(或者Any iOS Device),Command+B编译下:

18.编译HelloWorldFramework

       2.选中Aggregate,然后分别选中Any iOS Device,Command+B编译下,编译成功之后,系统会自动打开framework目录,如下图所示:

19.编译Aggregate

 三、测试Framework

1.创建测试项目

        创建一个名为TestHelloWorldDemo的测试工程,用来测试测试上面制作的framework。然后把上面创建好的framework拖到项目中去。

20.创建测试工程,拖入framework

2.添加测试代码

        导入framework,添加测试代码,发现控制台打印出来Hello World! ,成功了。

图21.测试代码

四、文章中测试Demo 

       上面的实例代码是以OC为例写的博客,Swift制作framework步骤和OC相同,区别就是Swift需要暴露的头文件需要添加public关键字,具体的工程代码,我把它传到了CSDN空间中,可以下载下来运行看下。

        文章中demo地址如下:demos地址链接

猜你喜欢

转载自blog.csdn.net/ZCC361571217/article/details/131912328
今日推荐