美文网首页iOS在路上
iOS打包framework实践一 打包源码

iOS打包framework实践一 打包源码

作者: 芝麻酱的简书 | 来源:发表于2018-11-15 11:05 被阅读56次

最近公司多个项目均需要用到同一模块,所以打算把此模块封装成静态库framework,并提交到公司gitlab上使用cocoapods管理,特记录实践过程。


首先把代码打包到framwork中:
新建工程,选择Cocoa Touch Framework


系统会默认创建一个以工程名字命名的头文件ZMJTestFramework.h,我们需要把暴露给外界使用的文件在ZMJTestFramework.himport

把代码拖入到新建的framework工程中(以ZMJView为例),现在我们需要把ZMJView暴露出来,所以在ZMJTestFramework.h头文件中按照系统提示的格式引入:


然后配置framwork,增加模拟器架构支持,来让打包出来的framework可以在模拟器上运行:

然后更改要打包的framework类型为静态库:
屏幕快照 2018-11-15 10.33.09.png

最后把上面👆 在头文件中importZMJView 添加到编译Headers的Public列表:


注:
  • Public列表的文件是要暴露给外界使用的
  • Project列表中的文件是要隐藏在framework中不让外界知晓的

然后更改编译版本为release版本:


现在一个简单的framework工程已经配置完成了,我们需要编译成framework文件来交付给别人使用。

编译方式1:

选择任一模拟器 Command + b编译:


然后选中工程文件列表Products中的.framework文件,右键show in finder,看到的就是最终生成的framework文件:

此时得到的framework只支持模拟器使用,如果想要在真机中使用,需要再选中真机然后Command + b编译,然后show in finder得到的framework就可以在真机中使用。
编译方式2:

在图中位置,生成script脚本:


然后添加如下脚本:
(脚本来源:https://www.jianshu.com/p/7f6a7e1b3235 十分感谢)
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

真机和模拟器都Build一遍之后就会在工程目录下生成Products文件夹,文件夹中的framework就是我们需要的文件。

使用的时候,直接把生成的framework文件拖入到目标工程,然后import引入,即可使用:

2.打包


3.打包framework中


4.


5.


6.


7.

相关文章

  • iOS打包framework实践一 打包源码

    最近公司多个项目均需要用到同一模块,所以打算把此模块封装成静态库framework,并提交到公司gitlab上使用...

  • [Dev]通过XCode 7开发framework

    一、打包Framework 1、新建iOS->Framework & Library->Cocoa Touch F...

  • Xcode7打包Framework

    一、打包Framework 1、新建iOS->Framework & Library->Cocoa Touch F...

  • iOS - ijkplayer 的编译、打包 framework

    ijkplayer 的编译、打包 framework 和 https 支持 --- 打包过程传送门 iOS兼容ht...

  • Xcode 7下制作framework

    一、打包Framework1、新建iOS->Framework & Library->Cocoa Touch Fr...

  • iOS APP Framework化

    iOS APP Framework化 目标:iOSAPP Framework化。 方法:资源文件打包成bundle...

  • iOS 打包Framework

    Framework是资源的集合,将静态库和其头文件包含到一个结构中,让Xcode可以方便地把它纳入到你的项目中。 ...

  • iOS 打包.framework

    一、概念了解1.什么是库?库是共享程序代码的方式,一般分为静态库和动态库。 2.静态库和动态库的区别静态库:链接时...

  • iOS打包framework

    上面一节我们讲述了制作静态库和使用静态库.现在我们就学习制作动态库framework. 1.首先创建工程. 点击创...

  • iOS 打包framework

    1、打开Xcode,新建工程 2、起个名字 3、创建成功 4、实现功能 .h .m 5、配置参数 6、最后一步进行...

网友评论

    本文标题:iOS打包framework实践一 打包源码

    本文链接:https://www.haomeiwen.com/subject/tqvefqtx.html