美文网首页
自制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