美文网首页
iOS framework的具体合成步骤

iOS framework的具体合成步骤

作者: LuKane | 来源:发表于2018-10-08 14:05 被阅读19次

    framework的方便之处

    1.如果公司有多个项目,很多模块都相似或者一样,那么将功能模块直接打成 framework, 下次用的时候直接导入就行
    2.如果将一个模块代码直接拷贝进项目,也是可以. 但是XCode编译速度会降低
    

    动态库和静态库

    静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝。
    动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存。
    
    而我们只能做的 : 静态库 (framework 或 .a)
    

    framework 和 .a的区别

    .a是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
    .a文件不能直接使用,至少要有.h文件配合,.framework文件可以直接使用。
    .a + .h + sourceFile = .framework
    

    framework 的合成步骤

    1.XCode 新建项目
    1.jpg
    2.项目取名称(KNActionSheet为例)
    2.jpg
    // 记得修改framework所需要设配的版本(iOS9.0)
    
    3.jpg
    3.将写好的模块类直接添加到项目中,并修改参数
    // 1.设置 Build Settings 中的 Linking 三个参数
    
    4.jpg
    // 2.设置 Build Settings 中的 Architectures ,增加armv7s
    
    5.jpg
    // 3.设置 Build Phases 中的 Headers ,将需要暴露出去的文件 从 Project 拖到 Public 中
    
    6.jpg
    // 4.导入头文件
    
    7.jpg
    4.打包 模拟器的 framework 和 真机的framework
    // 1.模拟器framework : 选中模拟器 ,直接 command + B 
    // 2.真机framework   : 选中Generic iOS Device ,直接 command + B
    // 3.找到 Products/KNActionSheet.framework的位置
    
    8.jpg framework文件位置.jpg
    5.现在呢! 模拟器和真机的 framework 都已经有了.但是它们只能单独使用(模拟器的framework 只能跑 模拟器, 真机的 framework 只能跑真机)
    6.模拟器和真机的 framework 合成
    // 1.打开 终端 termimal
    // 2.输入 lipo -create 模拟器KNActionSheet.framework中的 KNActionSheet 真机KNActionSheet.framework中的 KNActionSheet -output 桌面新建文件 
    
    10.jpg
    例如: lipo -create /Users/LuKane/Library/Developer/Xcode/DerivedData/KNActionSheet-enchucqlvbpvaigfpkcoeabzthqb/Build/Products/Debug-iphoneos/KNActionSheet.framework/KNActionSheet /Users/LuKane/Library/Developer/Xcode/DerivedData/KNActionSheet-enchucqlvbpvaigfpkcoeabzthqb/Build/Products/Debug-iphonesimulator/KNActionSheet.framework/KNActionSheet -output /Users/LuKane/Desktop/NewFramework
    
    // 3.回车
    // 4.注意 : 建议在桌面新建一个文件,而合成的文件 是和 新建文件夹一样层级, 合成的文件后缀名:xxxx.lipo ,移除后缀名,并重命名成自己的framework名(例如:KNActionSheet),找到模拟器或者真机的 framework, 替换framework中的 KNActionSheet 文件. 然后将当前framework 拷贝到 桌面上. 结束
    // 5.合成后的framework 比 模拟器 和 真机的都大, 毕竟是 合成的. 所以建议 : 单独用 模拟器的 或者 真机的 framework就行
    

    注意 : 最好在Build Settings中的 Other Linker Flags 中 增加 -Objc


    生成的文件.jpg 修该后的文件.jpg

    相关文章

      网友评论

          本文标题:iOS framework的具体合成步骤

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