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

原创 2010年11月30日 09:41:00

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 来给你的程序瘦身。比如你想让便笺应用程序只包含 Inteli386)的代码:

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

 

 

拓展阅读:

1ssh

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

2top

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

3lsbom

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

4say hello(黑苹果就算了)

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

 

 

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

转自 http://blog.csdn.net/jinglijun/article/details/8276089 通常在项目中使用静态库的时候都会有两个版本,一个用于模拟器,一个用于真机,...
  • cuiweijie3
  • cuiweijie3
  • 2013-03-14 01:40:09
  • 8707

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

合并通用fra
  • xiaozhu2001
  • xiaozhu2001
  • 2014-10-17 10:10:46
  • 8189

使用 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:23
  • 5593

合并静态库,请不要再用ar x了,坑啊

The other two are at least available when using GNU ar. You can use an MRI script (named for example...
  • liweigao01
  • liweigao01
  • 2016-12-07 17:45:14
  • 581

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

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

IOS 用lipo ar 拆分 合并 .a

这里以移动广告平台多盟的三个lib库为例子,之所以以此为例子,是因为我也遇到了库冲突的问题,所以才有了本文的内容。 本文的目标:合并libDomobOfferWallSDK.a、libDomobAd...
  • liyun123gx
  • liyun123gx
  • 2016-03-01 17:58:27
  • 2612

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

lipolipo –create Release-iphoneos/libiphone.a Debig-iphonesimulator/libiphone.a –output libiphone.a看...
  • ArthurChenJS
  • ArthurChenJS
  • 2010-11-30 09:41:00
  • 10617

用lipo合并模拟器Framework与真机Framework

真机 模拟器 framework
  • u011342466
  • u011342466
  • 2016-07-18 11:45:09
  • 291

Framework多种CPU架构的分离与合并

此文章参考http://blog.sina.com.cn/s/blog_9077079d0102wiy7.html 在使用第三方库库Framework或者其它的第三方的时候,库的开发人员可能...
  • jie863230900
  • jie863230900
  • 2016-11-29 14:54:07
  • 610

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

如果我们打包静态库肯定会有这样的需求:就是你打包一个库既能在真机上使用,也可以在模拟器上使用,怎么来打包生成一个通用的静态库呢? 其实也不难,首先,你得先通过真机打包生成真机可以用的静态库(这个库可以...
  • baidu_31683691
  • baidu_31683691
  • 2016-10-06 12:14:23
  • 743
收藏助手
不良信息举报
您举报文章:iphone开发之用lipo合并模拟器库和真机库,发布一个通用的静态库
举报原因:
原因补充:

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