合并第三方真机和模拟器的.framework或(静态库.a)文件的方法

iOS开发中使用第三方SDK时经常会遇到一些第三方提供真机和模拟器两套.framework(或.a)文件。但开发者在开发过程中会挺不方便的。这里就来总结一下真机和模拟器的.framework(或.a)文件的合并。

两种库文件的合并方式是一样的, .framework文件的合并稍微有点差别。我们先说.a文件的合并。

运行终端命令:
lipo -create /Users/***/Desktop/ThirdParty/library/Release-iphoneos/libthirdparty.a /Users/***/Desktop/ThirdParty/library/Release-iphonesimulator/libthirdparty.a -output /Users/***/Desktop/ThirdParty/library/Release/libthirdparty.a

就合并成功了。合并完可以验证一下:

lipo -info /Users/***/Desktop/ThirdParty/library/Release/libthirdparty.a

得到如下信息就表示合并成功了。

Architectures in the fat file: /Users/***/Desktop/ThirdParty/library/Release/libthirdparty.a are: armv7 armv7s i386 x86_64 arm64
(其中armv7、armv7s为真机架构, i386为模拟器, x86_64支持32位, arm64支持64位)。

合并.framework文件的方式也基本一样,稍微的区别在于合并的是ThirdPartyAPI.framework下的同名文件ThirdPartyAPI, 然后将合并得到的ThirdPartyAPI文件替换真机或模拟器任一.framework文件下的同名文件就可以了。

终端命令:
lipo -create /Users/***/Desktop/ThirdParty/framework/Release-iphoneos/ThirdPartyAPI.framework/ThirdPartyAPI /Users/***/Desktop/ThirdParty/framework/Release-iphonesimulator/ThirdPartyAPI.framework/ThirdPartyAPI -output /Users/***/Desktop/ThirdParty/framework/Release/ThirdPartyAPI

同样的方式验证:
lipo -info /Users/***/Desktop/ThirdParty/framework/Release/ThirdPartyAPI
得到的结果也是一样:
Architectures in the fat file: /Users/***/Desktop/ThirdParty/framework/Release/ThirdPartyAPI are: armv7 armv7s i386 x86_64 arm64

接下来我们将合并得到的ThirdPartyAPI 替换任一.framework下的ThirdPartyAPI文件, 该.framework就是我们最终需要的.framework文件了, 很简单吧。

时间: 2024-10-12 16:38:50

合并第三方真机和模拟器的.framework或(静态库.a)文件的方法的相关文章

合并真机与模拟器库文件

1.合并.a库文件 创建一个文件夹,分别拷贝出真机与模拟器的库文件,需要把库文件重命名,不然拷贝出来的时候会覆盖掉. 命令:cd 到创建的文件夹目录下,lipo -create zhenji.a moniqi.a -output xxx.a 该目录下xxx.a就是合并后的库文件,使用命令 lipo -info xxx.a检查是否同时支持模拟器和真机. 2.合并.framework库文件 合并方法与.a库文件合并方法相同,不同的是,这个合并的是xxx.framework下的xxx文件 创建一个文件

合并framework 真机、模拟器兼容

最近百度地图的SDK更新了,为了兼容IOS 9 ,不得不做更新. 下载SDK后发现,原来的静态库.a木有了.现在是framework,而且做了真机和模拟器两个,显然需要我们将两个framework合并成一个. framework不能直接合并,也不需要,只要我们合并目录下面的BaiduMapAPI就可以了.方法跟合并.a是一样的. ->打开终端 ->输入 lipo -create  Release-iphoneos/BaiduMapAPI.framework/BaiduMapAPI  Relea

iOS真机和模拟器CPU架构

1.如何合并真机和模拟器的.a库 先做好真机与模拟器的静态库,打开终端管理器,输入lipo -create +(真机及模拟器的静态库文件)(直接拖动相应文件进来会自动生成地址) + -output  +(输出的地址) 2.如何查看静态库的cpu架构 1.*****查看静态库支持的架构: 2.lipo -info /Users/路径/Desktop/xxxx.framework/xxxx 3.lipo -info xxxx.a 1.进入到framework目录下 cd /Users/.../xxx

Reveal在真机和模拟器上的使用

一.下载Reveal Reveal的官方下载地址(http://revealapp.com) ,但是只能免费使用30天,先介绍在真机和模拟器上的使用方法,后面传授破解方案. 二.导入Reveal.framework 打开Reveal,选择工具栏的Help -> Show Revel Library in Finder -> iOS Library 找到Reveal.framework 并把这个库文件导入到新建的项目 [RevealDemo.xcodeproj]中 在Other Linker F

一个有趣的现象(苹果的bug Or 坑?),关于区分真机和模拟器的预编译宏

TARGET_IPHONE_SIMULATOR和TARGET_OS_IPHONE 是苹果的两个宏定义, 在真机sdk中位于ios->usr/include/targetconditionals.h中, 在模拟器sdk中位于simulator->usr/include/targetconditionals.h中 (笔者此时使用的xcode版本为5.1,sdk版本是7.1) 仔细看其模拟器sdk中的定义: #define TARGET_OS_IPHONE            1 #define

Android Studio对真机和模拟器进行截图

Eclipse用DDMS可以直接把连接的手机直接显示到PC机上,可以很方便进行截图,那Android Studio可以进行截图吗?也是可以的,而且还很强大.如何对真机和模拟器进行截图呢,如图: 先点击Android,调出device界面,选择你想要截图的手机,我这边是用模拟器的,然后再点3的按钮,对应你所选择的机器的界面就会弹出来了,给大家show下: Reload:重新加载图片 Rotate:加载到的界面进行翻滚 Frame Screenshot:这个有点意思,是给你的截图加一个手机外框界面

iOS开发之 - 百度地图合成包(真机 , 模拟器通用)

百度地图一个是真机包,一个是模拟器包.下面是把真机包和模拟器包 合成为一个.以便开发 所有的包合成方法均是一样. 打开终端: lipo -create /Users/quancheng/Library/Developer/Xcode/DerivedData/LIBRARY-apqimrbblggwrncbmevvddjbhmcy/Build/Products/Release-iphonesimulator/libLIBRARY.a /Users/quancheng/Library/Develop

代码区分"真机"和"模拟器"!

在做直播的时候, PLPlayer的解码涉及到硬解和软解, 需要不用的配置, 就需要在使用真机和模拟器的时候进行区分, 下面方法完美解决! #if TARGET_IPHONE_SIMULATOR NSLog(@"模拟器"); #elif TARGET_OS_IPHONE//真机 NSLog(@"真机"); #endif

iOS中获取当前是真机还是模拟器

由于有时在模拟器上不能实现一些功能,在模拟器运行代码的时候崩溃,例如调用照相机,,,,所以 在宏定义中定义: #if TARGET_IPHONE_SIMULATOR #define SIMULATOR 1 #elif TARGET_OS_IPHONE #define SIMULATOR 0 #endif 这样直接就可以调用后加以判断是真机还是模拟器,来作出不同的动作 版权声明:本文为博主原创文章,未经博主允许不得转载.