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

转自 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

时间: 2024-10-29 10:47:01

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

lipo命令合并模拟器和真机的静态库

ios的开发,静态库经常需要用到两套,一套是模拟器的,一套是ios真机的,这两套的架构并不相同.再加上debug和release,那么就是2*2=4套了. 不过我们可以利用lipo 来合并静态库,例如 lipo -create Release-iphoneos/lib123.a Debug-iphonesimulator/lib123 -output lib123.a 再用lipo -info 查看,显示这是一个fat文件,并且包含了所需的全部架构.xcode编译时可自动选择库 具体可以见这篇文

制作,利用lipo 编译合并iPhone模拟器和真机通用的静态类库

(一)制作静态类库 ? ? 为方便讲解,更方便与初期代码测试,新建一个项目,StaticLibraryExample? ? 新建Target. 假设我们需要制作的静态类库名为 IMIBase. 右击Targets,添加新Target.选择Static Library, 名字为IMIBase ? ? 添加类文件到IMIBase.在新建文件选项中注意,添加到的Target是IMIBase,而不是默认的StaticLibraryExample. ? ? 随便写一个方法printAAA 打印字符串AAA

iOS 开发常用的调试命令

XCode4.0以后,编译器是LLVM,控制台调试命令前缀是lldb 第一.LLVM简介 LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time).链接时间(link-time).运行时间(run-time)以及空闲时间(idle-time),对开发者保持开放,并兼容已有脚本. 第二. 对关注编译技术的开发人员,LLVM提供了很多优点: 现代化的设计 LLVM的设计是高度模块化的,使得其代码更为清晰和便于排查问题

ios 百度地图使用lipo命令将设备和模拟器的.a合并成一个通用的.a文件

百度地图SDK提供了模拟器和真机两中环境所使用的静态库文件,分别存放在libs/Release-iphonesimulator和libs/Release-iphoneos文件夹下,我们需要将对应平台的.a文件拖拽至Xcode工程左侧的Groups&Files中,缺点是每次在真机和模拟器编译时都需要重新添加.a文件,为了 避免这种情况,我们可以将这个2个.a包合成一个,具体方式是使用 lipo 命令: 1 打开终端 2 输入 lipo -create Release-iphoneos/libbai

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

创建静态库可能出于以下几个理由: 1.你想将工具类代码或者第三方插件快捷的分享给其他人而无需拷贝大量文件.2.你想让一些通用代码处于自己的掌控之下,以便于修复和升级.3.你想将库共享给其他人,但不想让他们看到你的源代码. Xcode6创建静态库详解(Cocoa Touch Static Library) 一.创建静态库文件 打开Xcode, 选择File ----> New ---> Project. 新建工程. 选择iOS ----> Framework & Library -

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

lipo  -create  SQY/iOS/iphoneos/libGamePlusAPI.a  SQY/iOS/iphonesimulator/libGamePlusAPI.a  - output  SQY/iOS/libGamePus.a 其中SQY/iOS/iphoneos/libGamePlusAPI.a //为真机库. SQY/iOS/iphonesimulator/libGamePlusAPI.a //为模拟器库 -output SQY/iOS/libGamePus.a //为两个

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

iOS 9应用开发教程之定制应用程序图标以及真机测试 定制ios9应用程序图标 在图1.12中可以看到应用程序的图标是网状白色图像,它是iOS模拟器上的应用程序默认的图标.这个图标是可以进行改变的.以下就来实现在iOS模拟器上将HelloWorld应用程序的图标进行更改. (1)添加图像logo.png到创建的项目中,添加图像的具体步骤如下.首先右击项目文件夹中的任意位置,弹出快捷菜单,如图1.39所示. 图1.39  快捷菜单 然后,选择Add Files to "HelloWorld&quo

xcode 4 制作通用静态库

参考:http://blog.csdn.net/pjk1129/article/details/7255163 最近在做Apple的IOS开发,有开发静态库的需求,本身IOS的开发,只允许静态库或者Framework. 我这个文档的静态库的开发是基于Xcode4.2和iOS SDK5.0编写的.Xcode4跟之前的Xcode3还是有不少的差别的.下面就简单写一个静态库和一个调用静态库的例子.静态库的编写:1.静态库工程的建立: Xcode New一个新的project,选择IOS下面的Frame

IOS 之 PJSIP 笔记(一) 编译多平台支持的静态库

好久没有写博客了,这也算是我步入新工作后的第一篇技术博文吧.在进入新公司前,早就有了技术层进入下一个迭代的准备,但很多事情是意想不到的,就像我以 C# 程序员的身份面试入职的,而今却是一个全职的 IOS 开发.从 C# 到 Objective-C 的切换,还是有不少成本的,加上今年又推出了 Swift,以后要学习的路是漫长的,其实,学习的路本身就是漫长的,不应该满足于一个阶段和特定领域.对我而言,语言的切换,已经太常见了,学习一门语言是很容易的事情,但,完全的掌握它,却不是易事,就像去摸清一个陌