码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-08-26 20:19:18      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:static library

        由于开发的项目中使用了静态库文件(.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文件即可。


本文出自 “Layne的学习园地” 博客,请务必保留此出处http://laynestone.blog.51cto.com/9459455/1688537

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

标签:static library

原文地址:http://laynestone.blog.51cto.com/9459455/1688537

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!