iOS Framework制作流程

作者: YDomo | 来源:发表于2018-04-25 17:32 被阅读653次
    1. 新建工程选择iOS —> Cocoa Touch Framework


      361510885491_.pic_hd.jpg
    2. 进入创建好的工程删除掉自带的工程同名头文件


      371510885576_.pic_hd.jpg
    3. 添加所需文件


      WechatIMG6.jpeg

    4.TARGETS —> Build Settings 中设置相关项
    (1).Build Active Architecture Only 设置为NO的意思是当前打包的.framework支持所有的设备.否则打包时只能用当前版本的模拟器或真机运行.


    [图片上传中...(401510886919_.pic_hd.jpg-102a63-1524648422621-0)]

    (2).Build Setting 搜索linking 设置Dead Code Stripping 为NO是编译选项优化,包瘦身,(可不改) Mach-O Type 选中StaticLibrary (静态库) Xcode默认是动态库.

    401510886919_.pic_hd.jpg

    (3). 设置framework最低支持的版本


    431510887389_.pic.jpg
    1. TARGETS —> Build Phases
      将需要呈现给来的头文件,直接从Project拖到Public中. 不想呈现出来的.h文件不建议拖到Private中. 放在project中即可


      411510887052_.pic.jpg
    2. 在进行编译之前应该设置为release模式


      屏幕快照 2017-11-17 上午10.51.26.png
    421510887128_.pic.jpg

    7.来到工程目录树,Products下的文件都是红色的,现在我们选中.framework文件,分别真机和模拟器运行一遍(成功运行
    然后Show in Finder 找到对应的 .framework文件(上级目录可以看出是真机还是模拟器文件夹)
    真机和模拟器运行成功的文件是在这俩个文件夹内的

    屏幕快照 2017-11-17 上午10.59.22.png

    内部分为Debug版本和Release版本,同时两者有分为真机版本和模拟器版本framework(iphoneos后缀代表真机版本,iphonesimulator后缀代表模拟器)


    屏幕快照 2017-11-17 上午10.59.55.png
    1. 真机版本和模拟器版本framework合并
      (1).查看架构信息
      打开终端使用命令行 lipo -info 查看framework架构信息
      真机版本


      461510887947_.pic_hd.jpg

    模拟器版本


    451510887921_.pic_hd.jpg

    (2).合并真机模拟器版本
    因为以上获取的framework只能在对应的版本上运行(即真机只能在设备上运行模拟器版本只能在模拟器上面运行使用)所以需要合并为通用版本
    命令行语句:sudo lipo -create (此处请填写真机AppVest文件路径) (此处填写模拟器AppVest文件路径) -output 自定义合成文件存储路径(合成文件的名字AppVest)

    481510888572_.pic_hd.jpg

    根据以上命令就在相应位置生成了新的AppVest文件,然后把这个新生成的文件拷贝到相应的framework中进行AppVest文件替换

    (3).查看替换后的framework支持全部真机模拟器架构


    491510888890_.pic_hd.jpg
    1. 制作好的framework集成使用
      把制作好的framework拖入到工程中,引用相关头文件,然后初始化进行暴露方法调用


      501510889001_.pic_hd.jpg

    相关文章

      网友评论

      • 路小白同学:讲的很详细,多谢分享,有个问题不明白,为什么合并的时候只合并Release-iphoneos Release-iphonesimulator,其它Debug-iphoneos Debug-iphonesimulator 这两个是做什么用的?如果合并时只用Release-iphoneos Release-iphonesimulator,那么在模拟器下Debug模式能用吗还?
        YDomo:一般给外界提供release版本framework,内部返回不同的情况的状态码方便集成者追踪问题,如果需要debug模式,要Debug-iphoneos Debug-iphonesimulator 合并后的版本

      本文标题:iOS Framework制作流程

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