iOS 开发 自定义 framework

最近项目肯能需要 我自己的需要的东西打包成 framework ,之前没有这方面的经验,本想着按着教程来 一步一步应该不会有问题,谁知道 查找的资料真坑人,都是说了一半

首先创建framework 工程以及对应的设置我就不说了这些坑应该没有 ,(主要是我们创建工程的时候会自动生成一个  .h 文件这个文件我们完全可以删掉 )把我们自己定义的类的声明(也就是你想公开的头文件)进行如下设置


这一步默认把实现文件添加到编译列表,把头文件添加到Project组。这意味着它们目前是私有的。


Note:在你弄清楚之前,这三个组的名称可能会让你迷惑,Public是你期望的,Private下的头文件依然是可以暴露出来的,因此名字可能有些误导。讽刺的是,在Project下的头文件对你的工程来说才是“私有”的,因此,你将会更多地希望你的头文件或者在Public下,或者在Project下。

现在,你需要将控件的头文件RWKnobControl.h分享出来,有几种方式可以实现这一点,首先是在Copy Headers面板中将这个头文件从Project栏拖到Public栏。

接下来的两个设置 :表明是静态库文件

添加对老机型架构的支持


1,在Build Phases中增加Run Script
2,添加script:
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

说实话 这一步设置我不是很明白:我总是觉得 可有可无,我猜测应该是自动合并了,但是我执行起来并没有发现能自动合并,所以说,这点有谁了解可以给我说一下 这个在xcode 中的设置估计也是为了让他自动合并,但是应该还有接下来的操作


那么我们接下来build  就行,记得是在release 下build


build之后 在 会生成一个Products目录.目录下的framework 那么我们接下来需要进行合并操作,(主要是上一步的设置之后我的并没有自动合并 所以说  接下来需要我们手动调用终端合并 )


模拟机环境的:


真机环境的:


把这两个东西调用 执行命令    lipo -create  A库 B库 -output 合成之后的库

 然后把合成之后的文件把真机环境下的 对应的文件替换掉就行了 


这样对应的库文件就生成 你可以调动  cd  指定的库文件的路径    然后  lipo -info 对应的库名  就可以查看对应的支持的arm架构信息了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值