framework新建与使用

来源:互联网 发布:自动识别字体软件 编辑:程序博客网 时间:2024/06/06 03:38

本文主要是根据自己的实践,对网上资料进行整理

参考文章:

1、http://www.jianshu.com/p/6c033c39884a

2、http://www.tuicool.com/articles/UZnEniu

3、http://blog.csdn.net/zzzzzdddddxxxxx/article/details/51149243

以下过程请根据实际情况进行修改

1、framework新建

我们将自己自定义的一个控件制作成framwork供别人使用为例,来展示framework的制作过程。

打开Xcode创建一个framework工程。



修改一些配置信息,生成支持所有架构的版本。



将之前写好的控件源文件拖进工程,并做一些配置,主要是配置一下那些文件要暴露给别人使用,一般头文件需要暴露,实现文件不需要。



最后一个设定步骤,是要加入一段Run Script,用来将「仿真器版本Framework」、「实机版本Framework」,整合输出为单一Framework。

参考数据

用lipo合并模拟器Framework与真机Framework - IOS开发学习博客

Run Script

if["${ACTION}"="build"]thenINSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.frameworkDEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.frameworkSIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.frameworkif[-d"${INSTALL_DIR}"]thenrm -rf"${INSTALL_DIR}"fimkdir -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

Setting


完成设定步骤后,分别Build两个不同版本的Framework:仿真器版本、实机版本。接着,设定在建置作业中的Run Script,就会将两个版本的Framework,整合输出为单一的MyFramework.framework

仿真器版本 command+B


实机版本 command+B


经过上面2次编译,自动产出合并版本的MyFramework.framework  ,在终端打开该目录,通过 lipo -info MyFramework.framework/MyFramework  ,查看支持的版本信息。

使用

接着开启XCode来建立一个新项目:「MyAPP」,专案类型选择为Single View Application。这个项目用来说明,如何使用封装为Framework的程序代码。

专案类型


接着将Framework复制一份,放到MyAPP的专案文件夹内。XCode编译的时候,会去这个路径底下找寻Framework。其实放项目任意文件夹即可,可以通过add other加入或设置framework搜索路径。

Framework档案路径


回到XCode的项目属性页面,把Framework的参考加入到项目里。

加入参考


接着在项目预设的ViewController.m文件里面,加入下列程序来使用Framework里面所封装的程序代码。加入Framework参考#import <myframework/myframework.h>

到此基本结束。

后记:

XCode编译的时候,会去特定路径底下搜寻Framework来加入编译。如果需要增加或修改参考路径,可以透过调整Build Setting里的Framework Search Paths参数来变更。

Framework Search Paths


ios开发中报错处理--include of non-modular header inside XXXX

解决方案:在使用framework工程中设置

1.把target 下Build Settings 中Allow Non-modular includes in Framework Modules 选项卡设为yes。


 上一篇  下一篇
« 返回

阅读全文
0 0
原创粉丝点击