转自 http://blog.csdn.net/jinglijun/article/details/8276089

通常在项目中使用静态库的时候都会有两个版本,一个用于模拟器,一个用于真机,因为Mac和iPhone的CPU不同,才造成了这种情况。

为了模拟器与真机之间切换调试的方便,制作通用版本非常有必要。

现在有两个版本的静态库libSQLite_i386.a(模拟器)与libSQLite_arm.a(真机)。

1、打开终端,进入到这两个文件所在的目录;

2、执行:lipo -create libSQLite_i386.a libSQLite_arm.a -output libSQLite.a,这时文件就会多出libSQLite.a,这个文件即为通用静态库。

我们可以lipo -info libSQLite.a命令,查看是否是通用的。

可以发现libSQLite.a的大小为libSQLite_i386.a与libSQLite_arm.a之和,建议发布的时候将静态库替换成真机版。

那lipo到底是什么呢

lipo源于mac系统要制作兼容powerpc平台和intel平台的程序。

lipo 是一个在 Mac OS X中处理通用程序(Universal Binaries)的工具。现在发售或者提供下载的许多(几乎所有)程序都打上了“Universal”标志,意味着它们同时具有
PowerPC和 Intel 芯片能够处理的代码。不过既然你可能不在意其中的一个,你就能够使用 lipo来给你的程序“瘦身”。比如你想让“便笺”应用程序只包含
Intel(i386)的代码:

cd /Applications

lipo Stickies.app/Contents/MacOS/Stickies -thin i386 -output Stickies.app/Contents/MacOS/Stickies.i386

cd Stickies.app/Contents/MacOS/

rm Stickies

mv Stickies.i386 Stickies

 

[转] iOS开发之使用lipo命令制作模拟器与真机通用静态库的更多相关文章

  1. iOS开发--使用lipo命令制作模拟器与真机通用静态库

    通常在项目中使用静态库的时候都会有两个版本,一个用于模拟器,一个用于真机,因为Mac和iPhone的CPU不同,才造成了这种情况. 为了模拟器与真机之间切换调试的方便,制作通用版本非常有必要. 现在有 ...

  2. 利用lipo编译合并iPhone模拟器和真机通用的静态类

    利用lipo编译合并iPhone模拟器和真机通用的静态类 如何编译静态类库,而且现在网上也有很多的教程,现在问题时我们编译好了的静态类库会时两个版本的.a文件,分别用于模拟器和iPhone真迹,因此M ...

  3. ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)

    创建静态库可能出于以下几个理由: 1.你想将工具类代码或者第三方插件快捷的分享给其他人而无需拷贝大量文件.2.你想让一些通用代码处于自己的掌控之下,以便于修复和升级.3.你想将库共享给其他人,但不想让 ...

  4. iOS 11开发教程(九)iOS11数据线连接真机测试

    iOS 11开发教程(九)iOS11数据线连接真机测试 在Xcode 7.0之后,苹果公司在开发许可权限上做了很多的改变,在测试App方面取消了一些限制.在Xcode7.0之前的版本,苹果公司只向注册 ...

  5. iOS 9应用开发教程之定制应用程序图标以及真机测试

    iOS 9应用开发教程之定制应用程序图标以及真机测试 定制ios9应用程序图标 在图1.12中可以看到应用程序的图标是网状白色图像,它是iOS模拟器上的应用程序默认的图标.这个图标是可以进行改变的.以 ...

  6. iOS 合并.a文件,制作通用静态库

    lipo  -create  SQY/iOS/iphoneos/libGamePlusAPI.a  SQY/iOS/iphonesimulator/libGamePlusAPI.a  - output ...

  7. xcode 4 制作通用静态库

    参考:http://blog.csdn.net/pjk1129/article/details/7255163 最近在做Apple的IOS开发,有开发静态库的需求,本身IOS的开发,只允许静态库或者F ...

  8. ios framework 分离与合并多种CPU架构,分离与合并模拟器与真机

    ios  framework 分离与合并多种CPU架构,分离与合并模拟器与真机 如果你所用的framework支持真机和模拟器多种CPU架构,而你需要的是其中的一种或几种,那么可以可以从framewo ...

  9. 判断IOS静态库(.a文件)是否支持模拟器和真机运行

    判断IOS静态库(.a文件)是否支持模拟器和真机运行 在mac终端下,进入到.a文件目录下,然后输入: lipo -info libMyAlertView.a Architectures in the ...

随机推荐

  1. RMAN备份与恢复之参数文件与控制文件

    0   说明 本例是基于备份数据库全库的基础上,还原参数据文件(spfile),控制文件. 1   准备 [oracle@TEST144239 /]$ sqlplus /nolog SQL Produ ...

  2. 14款经典的MySQL客户端软件

    1. EMS MySQL Manager 强大的mysql管理工具,允许用户通过图形界面创建或编辑数据库对象,并提供通过sql语句管理用户和权限,通过图形界面建立sql语句,自动生成html格式的数据 ...

  3. 51nod 1336 RMQ逆问题

    RMQ问题是一类区间最值问题,这里给出一个特殊的RMQ问题,初始给定一个n长的排列P,注:n长排列是指有1~n这n个整数构成的一个序列每个整数恰好出现一次.并对这个排列P进行M次查询操作,每次查询形如 ...

  4. Saltstack系列3:Saltstack常用模块及API

    说明 salt '*' sys.list_modules #列出当前版本支持的模块 API原理是通过调用master client模块,实例化一个LocalClient对象,再调用cmd()方法来实现 ...

  5. C语言每日一题之No.7

    今天是正式第一天在现有的世界里与自己相处,你再也没有另一个世界可以躲避了.终于要自己面对自己了,一个人要真实的面对自己的灵魂总是痛苦的.从学校到社会的环境转换,现实与理想的冲突,个人价值观和社会价值观 ...

  6. free命令、buffer与cache的区别

    freefree 命令相对于top 提供了更简洁的查看系统内存使用情况: # free total used free shared buffers cached Mem: 255988 231704 ...

  7. 免安装Oracle客户端使用PLSQL Developer 7/8 连接Oracle10/11g

    众所周知,Oralce的客户端几百兆太大,网上也有许多DIR的处理.这里的处理使用官方提供ORALCE工具包Instant Client Package! 下载地址:http://www.oracle ...

  8. OAF_EO系列2 - Validation数据校验验证机制(概念)

    2014-06-12 Created By BaoXinjian

  9. 对Vector3.Lerp 插值的理解

    有时,我们在做游戏时会发现有些跟随动作不够圆滑或者需要一个缓冲的效果,这时,一般会考虑到插值.所以对插值的理解是必需的.(比如摄像机跟随主角) 插值是数学上的一个概念,在这里用公式表示就是:from  ...

  10. 【JavaScript】创建命名空间,Class,LOG

    JxUnderscore(function (J, _, root) { var isWindow, deepObject, Namespace, Class, LOG; /** * 一个对象是否为w ...