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. SVN系列操作(二)&svn不显示图标的解决方法

    接着上一篇文章,我们继续来操作一下SVN: 有同学反馈,我在本地上看到不SVN的图标,先解决一下这个问题. svn不显示图标的解决方法: 1.WIN+R,输入regedit,打开注册表 2.找到HKE ...

  2. (办公)SpringBoot和swagger2的整合.

    因为开发项目的接口需要给app,小程序测试,所以用swagger. 1.pom.xml: <dependency><!--添加Swagger依赖 --> <groupId ...

  3. sqlbulkcopy 批量插入数据

    批量插入 Datetable数据  通过sqlbulkcopy 插入1百万条数据 用时 10秒钟 (有兴趣的小伙伴可以去测试) /// <summary> /// /// </sum ...

  4. 【转载】FPGA算法映射要点

    近期一直在学习利用FPGA完成算法的定点运算,转载些相关的博客方面回顾查找.本博文原文链接为:https://blog.csdn.net/u013989284/article/details/7899 ...

  5. java反射(java.lang.reflect) ---普通单例模式唯一性问题

    1. 普通的饱汉式.饿汉式 package org.bighead.test2; public class TestPrivate { private String str = "strPr ...

  6. "'cl' 不是内部或外部命令,也不是可运行的程序"解决方案

    最近使用VS2012+Qt5.1+QtCreator2.8.1来搭建Qt的开发环境(之前有用MinGW编译的经历,经常碰到gdb调试器崩溃的问题),全部换成想用VC的编译器和调试环境,但是觉得QtCr ...

  7. 【Python使用】使用pip安装卸载Python包(含离线安装Python包)未完成???

    pip 是 Python 包管理工具,该工具提供了对Python包的查找.下载.安装.卸载的功能.Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具. pip使用( ...

  8. qemu 系列

    一.. qemu uboot 1. 首先安装交叉编译器,执行: sudo apt-get install gcc-arm-linux-gnueabi        2. 下载U-Boot源文件: ht ...

  9. 解析Object.defineProperty的作用

    对象是由多个名/值对组成的无序的集合.对象中每个属性对应任意类型的值. 定义对象可以使用构造函数或字面量的形式: 除了以上添加属性的方式,还可以使用Object.defineProperty定义新属性 ...

  10. laravel学习笔记二

    代码编写提示工具