iphone开发之用lipo合并模拟器库和真机库,发布一个通用的静态库

转载 2013年12月04日 09:56:05

lipo

lipo –create Release-iphoneos/libiphone.a Debig-iphonesimulator/libiphone.a –output libiphone.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

 

 

拓展阅读:

1、ssh

这颗小小的“宝石”包含于 Mac OS X 的每个版本,其开发的最初目的只是为了取代 rsh/rlogin,现在却成为Linux/Unix(包括 Mac OS X)社区不可缺少的一部分。openssh 的主要作用就是安全的远程管理。打开系统预置,点击“共享”,勾选“远程登录”,即可启动 Mac OS X 的内置 SSH 服务。现在假设你想连接你不在身边的电脑,可以借助类似 PuTTY(Windows 平台)的客户端,或者在 Mac OS X 的终端窗口中输入“ssh”连接你Mac 的 IP 地址。以你的用户名和密码登录之后,你便获得了 Mac OS X 命令行的完整操作权。除此之外,openssh 还有许许多多应用,有些可是相当了不起的。我就很喜欢用 ssh 搭个 SOCKS 代理,这样我在公共地点也能安全上网冲浪。在Mac 上使用 ssh 的更多技巧,可以浏览本页

2、top

top 是另一个长期为 Linux/Unix 社区使用的经典工具,使用它只需打开终端输入“top”。眨眼之间,你就会看见一个满是文字的窗口——每一个正在你的 Mac 上运行的进程都会被列出。如果我的 Mac 速度变慢,top 是让我知道什么正在发生的首选。点击 这里,查看 top 的完整概述。

3、lsbom

如果你偶然在某个 Mac 站点(比如 OS X Daily)发现一件够酷够新的软件,忍不住想安装,而你又犹豫不决,那么 lsbom 对你大有好处。通过它,你可以测试 Mac OS X 安装包(.pkg)的内容,并且清楚了解究竟会有什么被塞进你心爱的文件系统。要使用 lsbom,你需要启动终端,并进入 .pkg 文件所在的目录。如果你的安装包形式是 .dmg,可能需要把其中的 .pkg 文件拷贝到桌面上,然后进入 Desktop 目录。一旦确认.pkg 文件的位置,输入“lsbom .pkg/Contents/Archive.bom> | more”。哇!你所看见的就是新程序将会安装的完整文件列表。

4、say hello(黑苹果就算了)

这个命令是 Mac OS X 独一无二的,比其他任何一个都更有趣。打开终端输入“say hello”试试吧!

 

通用静态库的生成(模拟器和真机通用)

如果我们打包静态库肯定会有这样的需求:就是你打包一个库既能在真机上使用,也可以在模拟器上使用,怎么来打包生成一个通用的静态库呢? 其实也不难,首先,你得先通过真机打包生成真机可以用的静态库(这个库可以...
  • baidu_31683691
  • baidu_31683691
  • 2016年10月06日 12:14
  • 662

用lipo合并模拟器Framework与真机Framework【转载】

如果写了一个Framework,根据Build时选择的机器类型,会分为模拟器Framework和真机Framework,两者是不能混用的。 此时可以通过配置一个Run Script,在Scrip...
  • gavin8803
  • gavin8803
  • 2016年08月03日 14:57
  • 437

合并模拟器和真机库,生成一个通用的静态库

1. 利用lipo命令来合并模拟器和真机库: 用模拟器编译生成的静态库是i386架构的,而ios是arm6/arm7/arm7s架构的,架构不兼容,所以用模拟器编译的静态库在真机上不能用。 要使静态库...
  • jjsnower
  • jjsnower
  • 2013年09月23日 16:12
  • 1619

lipo命令合并和拆分IOS静态库

合并通用fra
  • xiaozhu2001
  • xiaozhu2001
  • 2014年10月17日 10:10
  • 7518

使用 lipo -create 合并.a文件

lipo -create /Users/Travis/Desktop/libIMIUI.d.a /Users/Travis/Desktop/libIMIUI.s.a -output /Users/Tr...
  • longzs
  • longzs
  • 2014年08月14日 17:02
  • 5367

iOS开发之静态库的生成、静态库的合并、静态库使用

静态库的生成与使用 如何利用Xcode生成静态库呢?下面一起来学习吧。 首先是如何新建.a类型的静态库。 首先新建一个工程,如下图,选中生成.a静态库, Snip20151...
  • zhonggaorong
  • zhonggaorong
  • 2016年07月11日 10:09
  • 5201

iOS 关于真机和模拟器framework合并

有时候在项目中,模拟器和真机上运行一个项目的时候,因为某些静态库的原因,可能某一个方面不能运行,大部分情况就是模拟器上不可以但是在真机上可以。接下来要做的就是把某一个工程生成的静态库进行打包以后生成的...
  • koocui
  • koocui
  • 2017年07月06日 11:56
  • 240

利用lipo 查看第三方个别静态库支持那些架构 如:i386和arvm6、arvm7、arm64

打开终端 输入 cd 和你的
  • a409149264
  • a409149264
  • 2014年04月16日 14:19
  • 2022

shell 脚本编译静态库

iOS脚本编译静态库
  • liuzhuanshaonian
  • liuzhuanshaonian
  • 2016年06月14日 12:20
  • 572

如何创建一个静态库文件,并打包在模拟器和真机上都可以使用。

在开发过程中我们往往会遇到这种情况,我们从网上down的静态库文件(.a文件)在模拟器上运行但是在真机上会报错说缺少arm7  arm64 。也有在模拟器上出现问题说缺少 x86_64  或者缺少i3...
  • Shave_Kevin
  • Shave_Kevin
  • 2015年08月19日 09:16
  • 1273
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iphone开发之用lipo合并模拟器库和真机库,发布一个通用的静态库
举报原因:
原因补充:

(最多只允许输入30个字)