美文网首页
自制Framework以及解决导入时路径问题:xxxx/head

自制Framework以及解决导入时路径问题:xxxx/head

作者: 维若 | 来源:发表于2017-09-30 17:15 被阅读0次

自制framework

综合了王大仙和网络上几个人的方法,成功自制Framework

参考简书:http://www.jianshu.com/p/8fcd89bb7b0b

PS:我们需要将公开的头文件从Project中拖入Public,至于是否需要将私有的头文件拖入Private,我觉得直接放在Project中即可,若是Private中有头文件,打包以后的framework中会多出一个Private的文件夹包含着放入Private的头文件,不过我觉得如果是私有最好还是不要让别人看到。事实上只需要public和project两个文件夹就够了 我不明白为啥需要private,因为private打包出framework后也是公开的,和public是一样的,只是名字不同(个人理解,如有不同,还请赐教)。

王大仙写的很详细 不过多赘述。

另:王大仙总结的修改

Build Setting -> Dead Code Stripping 改为NO

Build Setting -> Mach-O Type改为 Static Library

Build Setting -> Build Active Architecture Only 改为 NO

Build Setting -> Architectures 添加armv7s架构

Build Setting -> Other C flags  添加-fembed-bitcode    (使SDK支持bitcode)

Build Phases -> Headers 将公开的头文件从Project中拖入Public

脚本保留一下,以后可能用得到。

注意,要先build 生成一个simulator版和真机版的framework,再运行脚本,不然会报错,找不到文件路径。

所以 实际上我们至少需要build 3次。

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

解决导入时的路径问题:

开发环境:xcode9 Version 9.0 (9A235)

iOS系统:iOS11

不知道为什么,往测试工程中拖入framework的时候,buildPhrase里面的link binary with libraries总是为空,我托的时候还特意选了target。如下图,这个地方必须有你的framework,才可以引入。实在没有,你就手动拖进去。

相关文章

网友评论

      本文标题:自制Framework以及解决导入时路径问题:xxxx/head

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