动态库 Framework
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的更多相关文章
- WWDC2014之iOS使用动态库 framework【转】
from:http://www.cocoachina.com/industry/20140613/8810.html JUN 12TH, 2014 苹果的开放态度 WWDC2014上发布的Xcode6 ...
- iOS 开发新版 动态库framework
0. 参考 http://www.cocoachina.com/industry/20140613/8810.html framework+xib参考 : http://blog.csdn.net/x ...
- 使用XCode7打包动态库(Framework)
iOS中的静态库和动态库 概念 静态库(Static Library)以 .a 为后缀,它是你的源码的实现.m文件编译而成的二进制文件集合,需要配合上暴漏的.h文件使用,它在引用链接时拷贝至可执行文件 ...
- iOS 使用 Xcode8 制作动态库及静态库
在使用第三方 SDK 时,经常遇到他们提供的仅仅只有一个动态或静态库,并不能获取源码.使用动态库 FrameWork 或 静态库 Lib,可以满足不想把核心代码的具体实现向使用者展示,又能避免其他人错 ...
- iOS XCode7制作.Framework动态库和.a静态库的总结
一.开发SDK时的支持情况: OC语言制作动态库时,支持iOS8+:OC语言制作静态库,支持iOS7+. Swift语言制作动态库时,支持iOS8+;Swift不支持静态库. 对于SDK来说,支持情况 ...
- iOS 静态库,动态库与 Framework 浅析
静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我们会用到库呢?一种情况是某些代码需要给别人使用,但是我们不希望别人 ...
- IOS 使用动态库(dylib)和动态加载framework
在iphone上使用动态库的多为dylib文件,这些文件使用标准的dlopen方式来使用是可以的.那相同的在使用framework文件也可以当做动态库的方式来动态加载,这样就可以比较自由的使用appl ...
- iOS-静态库,动态库,framework浅析(三)
创建framework静态库 第一步,新建项目 新建项目.png 第二步,删除系统默认创建的[FMDB.h]和[FMDB.m]文件,导入需要打包的源文件. 导入源码后的工程.png 第三步,修改项目配 ...
- ios-静态库,动态库,framework浅析(一)
一,所谓的“库” * 所谓的“库” 库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用.什么时候我们会用到库呢? 一种情 ...
随机推荐
- form表单中多个button按钮必须声明type类型
最近在做一个后台管理系统,发现了一个小bug: 问题描述:form表单中有多个button按钮(以下图为例),如果第一个button不写type属性,那么点击第一个button按钮会触发submit事 ...
- CRM之分页
分页简介 分页功能在网页中是非常常见的一个功能,其作用也就是将数据分割成多个页面来进行显示. 使用场景: 当取到的数据量达到一定的时候,就需要使用分页来进行数据分割. 当我们不使用分页功能的时候,会面 ...
- 控制台程序读取Excel设置角色权限
摘要: 本人微信公众号:微软动态CRM专家罗勇 ,回复283或者20181118可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me ...
- Arcgis瓦片--数据获取
Arcgis的二维地图瓦片有两种获取方式 1.在Arcmap中对配置好的地图进行切图,生成对应瓦片 2.使用第三方的地图下载器,直接下载,导出成arcgis瓦片格式即可使用. 备注:这里主要介绍第二种 ...
- WebService访问oracle数据库本地调试
WebService访问oracle数据库本地调试-一步一个坑 上篇文章提到我们额数据库挂了,重装了数据库,然后呢我需要在本地调试WebService,看看那些数据结构缺失,迁移到新数据库中去.踩坑之 ...
- nodejs 使用 js 模块
nodejs 使用 js 模块 Intro 最近需要用 nodejs 做一个爬虫,Google 有一个 Puppeteer 的项目,可以用它来做爬虫,有关 Puppeteer 的介绍网上也有很多,在这 ...
- DVWA 黑客攻防演练(三)命令行注入(Command Injection)
文章会讨论 DVWA 中低.中.高.不可能级别的命令行注入 这里的需求是在服务器上可以 ping 一下其他的服务器 低级 Hacker 试下输入 192.168.31.130; cat /etc/ap ...
- PJSUA2开发文档--第七章 呼叫 Calls类
7 呼叫Calls 呼叫由Call类处理 7.1 子类化Call类 要使用Call类,应用程序应创建子类,如: class MyCall : public Call { public: MyCal ...
- 关于SQL数据库 msdb.dbo.sp_send_dbmail 函数发送邮件的几个实例
在推行系统中,时不时会有用户提出希望系统能自动推送邮件,由于手头的工具和能力有限,不少需求都借助于sql server的邮件触发来实现. 步骤: 1.配置邮箱.步骤略,网上有不少帖子说明,手工直接在管 ...
- SQLServer之视图简介
视图定义 视图是一个虚拟表,其内容由查询定义. 同表一样,视图包含一系列带有名称的列和行数据. 视图在数据库中并不是以数据值存储集形式存在,除非是索引视图. 行和列数据来自由定义视图的查询所引用的表, ...