动态库 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)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用.什么时候我们会用到库呢? 一种情 ...
随机推荐
- Dynamics 365支持的语言(中文语言名/英文语言名)列表
本人微信和易信公众号:微软动态CRM专家罗勇 ,回复277或者20180803可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...
- QQ路径
~/Library/Containers/com.tencent.qq/Data/Library/Application Support/QQ/46*******/Image osx10.10.3在这 ...
- Android Activity生命周期图解
Android activity的生命周期这一张图就够了. 验证结果: 值得注意的是从activity A--->activity B是先执行A的onPause然后走B的生命周期最后才走A的on ...
- WPF:间接支持虚拟化的ListBox
/// <summary> /// 间接实现了虚拟化的ListBox /// 子项必须实现IVisible接口 /// 你可以在IsVisible发生改变时实现一系列自定义动作 /// 比 ...
- java基础知识总结二
1. synchronized和reentrantlock异同 相同点 都实现了多线程同步和内存可见性语义 都是可重入锁 不同点 实现机制不同 synchronized通过java对象头锁标记和Mon ...
- webmagic 基本的方法
WebMagic的结构分为Downloader.PageProcessor.Scheduler.Pipeline四大组件,并由Spider将它们彼此组织起来.这四大组件对应爬虫生命周期中的下载.处理. ...
- selenium-确认进入了预期页面(四)
selenium确认进入了预期页面 在自动化操作中,浏览器每次进入一个新的需要,都需要确认该页面是否打开或打开的页面是否是预期的页面 需要进行确认页面后方可进行下一步操作 确认页面有很多中方法,像笔者 ...
- 安装和使用git遇到的问题总结
一,centos7下安装(因为centos7下用yum安装git的版本太低了,所以只能下载源代码,然后用源代码安装) 下载编译工具 yum -y groupinstall "Developm ...
- windows下php7.1安装redis扩展以及redis测试使用全过程
最近做项目,需要用到redis相关知识.在Linux下,redis扩展安装起来很容易,但windows下还是会出问题的.因此,特此记下自己实践安装的整个过程,以方便后来人. 一,php中redis扩展 ...
- esp8266 免费wifi强推广告神器(4) 发现当前WIFI下的用户数目,IP,MAC请求http信息 在用户请求跳转后跳转
需求: 1 获取当前连接客户端的HTTP请求各种信息 方法 get http 请求路径 例如 /index.html / /pic.jpg 请求版本 HTTP/1.0 HT ...