美文网首页程序员
iOS 封装SDK Framework遇到的问题

iOS 封装SDK Framework遇到的问题

作者: 爆裂少女小鸭子 | 来源:发表于2018-04-12 15:27 被阅读0次

    最近,需要把我们的工程核心代码封装成SDK,给合作公司用,然后学了一下如何封装SDK,以及遇到的一些问题,特意整理一下常见问题。

    具体如何建工程

    这个就不赘述了,附了网上整理挺好的封装方法,https://blog.csdn.net/u010960265/article/details/78834106

    说一下遇到的问题

    1.引入Framework的头文件 需要用尖括号 <MyFramework/xxxx.h>

    2.为什么我的Framework里的public头文件可以找到,但是public头文件里的引用的一些project的头文件找不到,例:myFirstHeader.h 是公共的,露出来的头文件可以找到,但是myFirstHeader.h 里引用的mySecondHeader.h 找不到
    我需要回答的是,我不知道为啥(捂脸捂脸捂脸)但我尝试的修改了,我把mySecondHeader.h 也变成public时候,就没问题了,可是这样一来不就代表我所有的头文件都要露出来吗,不要不要不要~ 所以我又在外面包了一层,把隐藏的头文件包在.m文件里,这样就没问题了~~~
    当然我不知道这样对不对,因为我查了好久,也没查到。。。 发友们有知道的一定要告诉我啊~~~

    3.自定义的Framework里如何引用第三方的.a,Framework文件~
    因为公司的需要,需要降噪,所以我们又自定义了降噪的.a文件,想把它放在自定义的Framework里,又不想别人看到我的这个降噪文件
    起初我直接把降噪的Framework放到自定义的Framework里真机运行总是报错,模拟器没问题,后来,在公司技术大哥的提醒下,直接放.a文件,就木有问题了~~~ 放.a.a.a

    4.category 分类是我们实际开发项目中经常用到的,把category打成静态库是没有问题的,但是在用这个静态库的工程中,调用category中的方法时会崩溃,解决办法是:在使用静态库的工程中配置other linker flags的值为-ObjC(这个不是自己打的啦,是借鉴别人的 因为我确实遇到这个问题了~~~)

    对了 了解一下静态库 动态库

    静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。

    动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。

    系统的.framework是动态库,我们自己建立的.framework是静态库

    .a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。

    .a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。

    好啦好啦 我知道后面的都被写烂了 阔是 这个是敲黑板重点啊 大家再多看看~~~~

    嗯啊 如果有啥问题错误 一定要要要要 指正出来啊~~~

    爆裂少女 你们就叫我小鸭子好了~~~

    相关文章

      网友评论

        本文标题:iOS 封装SDK Framework遇到的问题

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