framework的建立和生成 都比较简单。重点会放在第三块上面(指令集说明及合并)

1.framework target建立

1.1. command + shift + N

选取 ios -> Framework & Library -> Cocoa Touch Framework 新建为一个动态库项目

新建你需要的文件,写入你自己的逻辑,再将该文件的.h 文件写入到对外公开的文件中

如果要使用该文件 需要在target -> Build Phases ->Headers 将需要在外部使用的.h文件从project项移动到public项中

其他需要什么系统框架什么的 就和工程项目一样即可

2.framework 生成

选取你需要编译的环境 iPhone 6.或者 Generic iOS Device

可以将编译环境改为release环境(点击左上角的项目->点开之后选取Edit Scheme -> Run ->Info -> Build Configuration中选取Release即可)

点击运行按钮 成功之后在左侧的Products的组中可以看到一个.framework的文件,右键show in finder.模拟器编译的和真机编译的是不一样的

3.framework iphoneos 与 iphonesimulator  合并

1.先说下内核指令集

//模拟器 内核

    i386 iPhone 4s的8.2版本上能出现
    x86_64 iPhone 7 的最新版本上能出现

        //真机 内核

    armv6 iPhone3G.-
    armv7 iPhone 4s,iPhone 4,或者 Generic iOS Device
    armv7s iPhone 5c,iPhone 5.
    arm64 iPhone 5s,+, 或者 Generic iOS Device

        注:指令集是向下兼容的。因此armv7的指令集是可以运行在iphone5S的,只是效率没那么高而已

     2.查看某个framework支持的指令集

          2.1 进入到当前framework 中  cd /Users/......iphoneos/HGLObjC.framework

          2.2 使用lipo命令查看     lipo -info HGLObjC

                  注:打印如此  Architectures in the fat file: HGLObjC are: armv7 arm64

                       iphoneos 真机地址,iphonesimulator 模拟器地址

      3.合并指令集

          3.1 处于某一个framework中  $ cd /Users/.......iphoneos/HGLObjC.framework

          3.2 合并操作  $lipo -create HGLObjC /Users/.......iphonesimulator/HGLObjC.framework -output HGLObjC

          3.3 再次查看指令集 $ lipo -info HGLObjC

      4.其它操作

        4.1. 剥离某个指令集 $lipo -thin arm64 HGLObjC -output HGLObjC1

               注:arm64 为某个指令

         4.2. 查看具体信息 $lipo -detailed_info HGLObjC

               注:打印如此 

               

动态库 Framework的更多相关文章

  1. WWDC2014之iOS使用动态库 framework【转】

    from:http://www.cocoachina.com/industry/20140613/8810.html JUN 12TH, 2014 苹果的开放态度 WWDC2014上发布的Xcode6 ...

  2. iOS 开发新版 动态库framework

    0. 参考 http://www.cocoachina.com/industry/20140613/8810.html framework+xib参考 : http://blog.csdn.net/x ...

  3. 使用XCode7打包动态库(Framework)

    iOS中的静态库和动态库 概念 静态库(Static Library)以 .a 为后缀,它是你的源码的实现.m文件编译而成的二进制文件集合,需要配合上暴漏的.h文件使用,它在引用链接时拷贝至可执行文件 ...

  4. iOS 使用 Xcode8 制作动态库及静态库

    在使用第三方 SDK 时,经常遇到他们提供的仅仅只有一个动态或静态库,并不能获取源码.使用动态库 FrameWork 或 静态库 Lib,可以满足不想把核心代码的具体实现向使用者展示,又能避免其他人错 ...

  5. iOS XCode7制作.Framework动态库和.a静态库的总结

    一.开发SDK时的支持情况: OC语言制作动态库时,支持iOS8+:OC语言制作静态库,支持iOS7+. Swift语言制作动态库时,支持iOS8+;Swift不支持静态库. 对于SDK来说,支持情况 ...

  6. iOS 静态库,动态库与 Framework 浅析

    静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...

  7. IOS 使用动态库(dylib)和动态加载framework

    在iphone上使用动态库的多为dylib文件,这些文件使用标准的dlopen方式来使用是可以的.那相同的在使用framework文件也可以当做动态库的方式来动态加载,这样就可以比较自由的使用appl ...

  8. iOS-静态库,动态库,framework浅析(三)

    创建framework静态库 第一步,新建项目 新建项目.png 第二步,删除系统默认创建的[FMDB.h]和[FMDB.m]文件,导入需要打包的源文件. 导入源码后的工程.png 第三步,修改项目配 ...

  9. ios-静态库,动态库,framework浅析(一)

    一,所谓的“库”         * 所谓的“库”          库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用.什么时候我们会用到库呢?         一种情 ...

随机推荐

  1. vue项目利用apicloud打包成apk过程

    最近公司要求我们用apicloud做一个app,正好利用这个机会学习下app的制作过程~ 页面的开发过程跟我们平时开发一样,利用vue把页面全部完成,最后进行npm run build将项目打包. 接 ...

  2. 开源ERP-成功案例分析(3)

    Odoo用户概要 关于Odoo全球的用户,我们来看一些数据: Odoo目前全球有300万使用者 Odoo系统上每天新创建的数据库超过1000个 Odoo和Word.Excel.PowerPoint一样 ...

  3. OpenCL:图像处理基础note

    使用图像对象的理由 虽然对于图像也可以把它的像素数据当做一般的缓存数据来处理,但是如果把它当做图像来处理有如下好处: 在GPU中,图像数据是保存在特殊的全局内存中,即纹理内存,它和一般的全局内存不相同 ...

  4. 解决service iptables save出错please try to use systemctl

    # service iptables save The service command supports only basic LSB actions (start, stop, restart, t ...

  5. c#二进制移位运算符 "<<"及">>","&","|","^"

    移位运算符 & :按位与,其实与&&逻辑运算符有一致的地方: | :按位或,同样与||有类似的地方. ~:按位取反 ^:按位异或 <<:左移运算符 >> ...

  6. Nginx+uWSGI启动Django

    在之前的几篇博客中对Django的功能做了初步实践,这里链接贴一下: Django的安装和启动 Django之--网页展示Hello World! Django之--通过MVC架构的html模板展示H ...

  7. bat(批处理)命令(tomcat 7.0.75 startup.bat 命令集)

    本文主要介绍tomcat 7.0.75中startup.bat(位置:tomcat目录\bin)中涉及到的bat命令,为tomcat源码研究做准备. startup.bat中涉及到的bat命令如下: ...

  8. LeetCode算法题-Valid Palindrome II(Java实现)

    这是悦乐书的第287次更新,第304篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第155题(顺位题号是680).给定非空字符串s,最多可以删除一个字符. 判断它是否是回 ...

  9. LeetCode算法题-Hamming Distance(Java实现)

    这是悦乐书的第237次更新,第250篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第104题(顺位题号是461).两个整数之间的汉明距离是相应位不同的位置数.给定两个整数 ...

  10. docker容器日志收集方案(方案三 filebeat+journald本地日志收集)

    其实方案三和方案二日志采集套路一样,但是还是有点差别. 差别就在于日志格式如下: ​ 为了方便对比吧日志贴上来 Nov 16 10:51:58 localhost 939fe968a91d[4721] ...