iOS开发技术iOS 你不知道的新鲜事iOS 开发成长中心

iOS 制作Framwork以及我所遇到的坑

2017-07-08  本文已影响101人  Codepgq

前景

<br />

正文

创建工程 输入SDK名称

<br />

版本信息 编译信息 link 信息 第一步 第二步 Class

这里我就随便添加几个方法进去,提供外界调用。

<br />

头文件公开

<br />

.h文件的使用

<br />

PCH创建 PCH文件引用

<br />

- 如果不进行合包操作,真机包只能再真机上面运行,模拟器的包只能在模拟器上面运行。

合包操作大概分为两种:手动、脚本。
手动就不说了,其实脚本也是手动,只不过不用自己敲

<br />

添加脚本代码

脚本代码如下,如果第一次编辑,会报错,报错的原因是找不到另外一个framework文件,在真机/模拟器编译一次就好了

模拟器编译一次、真机编译一次,不分顺序。

#需要注意的是,如果你的Framwork与你的工程名不一致,${PROJECT_NAME} 需要自改为你的framwork名称
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

<br />

显示 模拟器、真机区分

<br />

Add target 创建一个single View Application 导入 导入SDK 使用SDK

总结:制作framework就经历了上面的这些步骤

<br />

篇外:

这个错误

要把framework放到与工程目录同级文件夹下,不要放入工程文件夹中。

错误

<br />
<br />

找不到实现方法

两种情况,要么你没有实现.m文件,要么你使用了分类,如果你使用了分类,需要添加-ObjC(一般这个就足够了,如果还是不行,那就试试 -all_load 、 -force_load)

错误

引起这个的方式有很多,我这里遇到的是:bitcode所引起的,如果你的SDK不支持bitcode 那么你的项目也不能开启bitcode,否则就会出现这样子的错误

上一篇 下一篇

猜你喜欢

热点阅读