iOS项目引用静态库文件.a

由于开发的项目中使用了静态库文件(.a文件),因此专门对它进行了简单的学习。静态库文件包装的是经常使用的公共代码,便于代码的复用。

1、生成静态库文件(static library file)。主要包括以下几个主要步骤:

(1)创建静态库项目

命名为Stone,并在生成的Stone类里面添加一个类方法+printInfo,如图:

未编译前,Products文件夹下的libStone.a是红色的,编译之后变为黑色,如图:

注意顶部选择"iOS device"生成用于真机的静态库文件,选择任意模拟器则生成用于模拟器的静态库文件,且只要在选择"iOS device"时libStone.a才由红色变为黑色。

(2)设置release,如下图:

选择图上左侧红圈部分,之后再选择Edit Scheme,在弹出的对话框中选择release即可。

(3)编译后,进入文件夹:

/users/layne/Library/Developer/Xcode/DerivedData如图:

找到对应的项目的文件夹,Stone-efgkvmcmovsnfcelruigvapvtvwl/Build/Products,可以看到生成了2个文件夹Release-iphone和Release-iphonesimulator,前者里面的libStone.a用于真机,后者里面的libStone.a用于模拟器。如图:

2、为使用libStone.a的项目进行配置。

使用已创建的项目UIMenuController,为了便于演示,已将为真机和为模拟器使用的.a文件进行了重命名且复制到了桌面上。如下图:

(1)UIMenuController项目的build Phases->Link Binary with Libraries添加libStoneForIphone.a,并将Stone.h添加到项目里,如图:

(2)使用。如图:

注意:

(1)添加什么样的.a文件就只能用对应的方式运行。即添加了libStoneForSimulator.a,则只能用模拟器跑;添加了libStoneForIphone.a,则只能用真机跑。否则会出错。

(2)解决方法有两种:

①把两个.a文件都添加进项目。

②将两个.a合并为一个.a文件。

将两个.a文件合并为一个的方法如下:

使用命令行即可。终端切换到桌面,然后执行以下命令

lipo -create libStoneForIphone.a libStoneForSimulator.a -output libStoneForAll.a

这样一来,只要引入libStoneForAll.a文件即可。

时间: 2024-10-05 04:58:27

iOS项目引用静态库文件.a的相关文章

ios 项目引用全局pch文件

1.在项目中新建添加PCH文件 把这些记下来,下次直接粘贴:$(SRCROOT)/工程名/pch文件名

iOS 创建静态库文件时去掉其中的Symbols

在工程中创建静态库文件时,默认会将一些Symbols加到静态库文件中,这样做有两个缺点: 1.如果引用静态库文件的工程中发生了bug,就会直接跳转到静态库的源码. 2.静态库文件的大小会因此翻几番.本人最近做的这个静态库文件中,去掉symbols前大小为7.8MB左右,去掉以后大小为2.8MB. 要去掉Symbols,首先打开Build Settings并选中静态库的Target,然后设置下列选项: 如果有错误或遗漏,欢迎批评指正. iOS 创建静态库文件时去掉其中的Symbols,布布扣,bu

iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework

编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 由于bundle是静态的,所以可以将“iOS开发之静态库(三)—— 图片.界面xib等资源文件封装到.a静态库”中生成的“MyToolsWithAssetsA.bundle”文件直接拿过来使用. 二.创建静态框架 创建过程参考“iOS开发之静态库(四)—— 静态框架framework制作”,里面介绍非常详细. 静态库代码借用“iOS开

项目架构基础之二 ---- 工程中创建静态库文件(.a)库文件

步骤1.创建工程HLStaticTest 步骤2.创建静态库文件 步骤3. 关闭HLStatic,回到HLStaticTest Targets - >Build Phases ->Link Binary With Libraries 然后进入到  Targets -> Build Setting ->Header Search Paths 步骤 4. 进入AppDelegate 工程中创建静态库文件(.a)库文件 成功 版权声明:本文为博主原创文章,未经博主允许不得转载.

在iOS中创建静态库

如果你作为iOS开发者已经有一段时间,可能会有一套属于自己的类和工具函数,它们在你的大多数项目中被重用. 重用代码的最简单方法是简单的 拷贝/粘贴 源文件.然而,这种方法很快就会成为维护时的噩梦.因为每个app都有自己的一份代码副本,你很难在修复bug或者升级时保证所有副本的同步. 这就是静态库要拯救你的.一个静态库是若干个类,函数,定义和资源的包装,你可以将其打包并很容易的在项目之间共享. 在本教程中,你将用两种方法亲手创建你自己的通用静态库. 为了获得最佳效果,你应该熟悉Objective-

【iOS】编译静态库

与java和.net一样,objc也由类库的概念,不过在在objc上一般叫库,库表示程序代码集合,可以共享给其他程序使用,库是编译后的二进制文件,因此不能看到源代码,多用于一些开放sdk(如百度地图sdk),商用库,这两天在研究iOS上编译静态库,这里把编译的过程和中间遇到的一些问题做一下记录,方便以后查阅 objc上的库一般分为两类 静态库: .a 和 .framework .a文件:纯二进制文件,需要配合.h文件一起使用,通过.h文件引用库里面的内容 .framework文件:包含二进制文件

iOS开发之静态库(四)—— 静态框架framework制作

前面介绍过,虽然苹果公司禁止在iOS开发中使用动态库,而且也从XCode中移除了创建静态框架的功能,但我们还是可以通过对XCode进行小小的改动来创建静态框架. 编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 首先创建一个静态库工程 给工程起个名字 创建成功 XCode5.0以后,创建的工程中默认自带了单元测试的代码: 即MyToolsFrameworkTestTests目录及TARGETS中的MyToolsFrame

iOS开发之静态库(二)—— .a

前面已经介绍了iOS中静态库的基本概念和特点,这里就不再多废话,直接上代码 编译环境Xcode5.1 + Mac OS X 10.9.3 新建静态库项目 Xcode中创建静态库的模板有两个,一个是创建iOS静态库,另一个是创建Mac OS X静态库,我们选择前者 点击右下角Next按钮进入下一步 给工程起个名字MyToolsA,其余的按默认值 点击Next下一步 我们所关心的就只有MyToolsA.h和MyToolsAm文件,其他的暂且不管 // MyToolsA.h // MyToolsA /

关于iOS上的静态库

最近再进行项目的真机调试,然后发现了一个天坑.就此研究了一些iOS上的静态库的使用: 首先我们是直接拿一个可以运行的项目来制作静态库的,网上大部分都是先创建静态库然后再写内容,看看我的方法. 1.把子项目导入到总项目工程里面,然后删除子项目的运行文件,然后再里面创建一个静态库!!!(不要创建framework那个,非常坑.我给坑了好久具体下面在说吧)创建一个.a的静态库.名字没有什么影响自己喜欢就可以,我一般是按照原来的名字来的. 2.然后在总项目工程里面添加链接  Build Phases -