iOS 制作FrameWork 以及FrameWork通过包合

作者: 四分之一工程师 | 来源:发表于2016-06-16 10:54 被阅读2833次

    前段时间工作上需要创建一个FrameWork,由于是第一次尝试,所以遇到了一些问题,所以想列举出来供大家参考。

    首先编译出来的FrameWork你需要查看它对cpu架构的支持:如下

    1.打开终端,进入到你的FrameWork,cd xxxx/xxx.framework

    2.查看架构支持,lipo -info xxxx/xxx.framework/xxx (注意:xxx是你的FrameWork名称)

    3.如果以上两步都成功,你将会看到。。。is architecture:arm64 armv7 等等。

    由于我之前工程的一些特殊性,所以没有办法一次性编译出可以支持 arm64 armv7 i386 架构的FrameWork

    所以就涉及到了将FrameWork合并的问题:如下

    1.lipo -create /Users/xxxxxxx/Desktop/armv7/xxx.framework/xxx  /Users/xxxxxxx/Desktop/arm64/xxx.framework/xxx  -output /Users/xxxxxxx/Desktop/arm64andarmv7/xxx。chang这步操作就是将一个支持armv7的FrameWork 和 一个支持arm64的FrameWork 合并成了同时支持arm64、armv7的FrameWork。

    2.注意,第一步的操作还木有结束,合包(Framework是合并里面的exec文件,然后将exec文件随意替换到之前的任意一个FrameWork中),也就是说你需要将你在第一步合并出来的exec文件替换到之前任意的一个FrameWork中的exec,一般来说exec文件的名字就是你的FrameWork的名字。

    以上,都是我自己操作过并且可以成功使用的,可能描述的不是特别明白,下面是我为大家列举的iOS设备的cpu架构指令集

    设备的CPU架构(指令集)

    模拟器:

    4s-5: i386

    5s-6s Plus: x86_64

    真机(iOS设备):

    armv6: iPhone、iPhone 2、iPhone 3G、iPod Touch(第一代)、iPod Touch(第二代)

    armv7: iPhone 3Gs、iPhone 4、iPhone 4s、iPad、iPad 2

    armv7s: iPhone 5、iPhone 5c

    arm64: iPhone 5s、iPhone 6、iPhone 6 Plus、iPhone 6s、iPhone 6s Plus、iPad Air、iPad Air2、iPad mini2、iPad mini3

    相关文章

      网友评论

      • 魔蝎小豆丁:都合并了会使ipa 包变大吗? 我提交应用时是不是要去掉模拟器的
      • slimsallen:合并之后的包 没有那些 header 文件 将合并之后的包替换真机 或者 模拟器的包 还是 没有header文件
        75566feeabe6:header文件在你的framework中,只是替换framework里的这个文件就行
      • 我本善良:最后的framework如果要支持 i386和x86_64的话,那么则分别需要在对应架构的模拟器上运行,然后合并;然后在合并在真机上打出的framework,最终的framework会支持i386,x86_64,arm64 armv7 armv7s。

      本文标题: iOS 制作FrameWork 以及FrameWork通过包合

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