.a合并 ios_ios 合并.a - CSDN
精华内容
参与话题
  • iOS 合并多个数组

    千次阅读 2016-10-21 16:27:48
    直接上代码了:NSMutableArray *arr = [NSMutableArray array];... for (NSArray *a in arrays) { for (int j = 0; j < a.count; j++) { [arr addObject:a[j]]; } }以上,其中arrays是一个数组中包含多个数

    直接上代码了:

    NSMutableArray *arr = [NSMutableArray array];
        for (NSArray *a in arrays) {
            for (int j = 0; j < a.count; j++) {
                [arr addObject:a[j]];
            }
        }

    以上,其中arrays是一个数组中包含多个数组。

    展开全文
  • lipo命令合并和拆分IOS静态库

    万次阅读 2014-10-17 11:13:06
    合并通用fra

    1.合并模拟器和真机通用静态库

    在Xcode中选择模拟器编译出来的静态库是i386架构的,选择真机编译出来的静态库是armv7架构的。当我们是用这些静态库导入到其他工程里开发的时候很麻烦,其他工程在模拟器下要用需要把i386架构的静态库加到工程里,真机调试的时候又要把armv7 arm64架构的静态库加到工程里。这里介绍个lipo命令可以简单的将两个不同框架的静态库合并起来,这样只需要加一个合并后的静态库到工程里就行了。


    假设我们有 libSyncSDK.i386.a (i386架构)和libSyncSDK.arm.a (armv7架构)

    我们只需要在terminal中输入以下命令

    <span style="font-size:14px;">lipo -create /Users/zyh/Desktop/libSyncSDK.i386.a /Users/zyh/Desktop/libSyncSDK.arm.a -output /Users/zyh/Desktop/libSyncSDK.a</span>

    这样生成的libSyncSDK.a就是含有 i386 arm7 arm64 3个架构的,大家可以使用file 命令查看

    <span style="font-size:14px;">file libSyncSDK.a</span>

    可以放心加到工程中使用了


    那么如果是framework形式的要怎么搞呢?

    下图是需要拿出来合并的文件位置


    将模拟器和真机编译出来的framework中得这个文件拿出来,执行上面描述的操作,然后将合并好的文件在放回到原来的位置 这个framework就支持多个架构了。注意文件名要和合并前的一样


    2.拆分多架构支持的静态库

    上面说了合并是为了提高开发效率,那么当我们发布app的时候,如果将i386架构打包进入静态库会变大将近一倍(如果一共支持两个架构),那么如果工程使用了多个这类静态库,会导致整个包的大小没必要的增长。我们也可以通过lipo命令为静态库瘦身


    还是拿LoginSDK为例子,用file命令查看静态库支持几个架构



    发现有i386 armv7 armv7s,实际安装到真机上我们只需要armv7就可以了,我们就用lipo命令将armv7的提取出来

    lipo LoginSDK.a -thin armv7 -output arm/LoginSDK.a

    这样在arm文件夹中得LoginSDK.a 就是armv7架构了,大家可以用lipo -info 命令查看



    瘦身前(左)和 瘦身后(右)的大小比较

           



    展开全文
  • 首先是如何新建.a类型的静态库。 首先新建一个工程,如下图,选中生成.a静态库, Snip20151226_2.png 比如说叫mathTool,在然后里面封装一个两个数相加的方法。 #import "mathTool.h" +(NSInteger)num1:...

    静态库的生成与使用

    如何利用Xcode生成静态库呢?下面一起来学习吧。
    首先是如何新建.a类型的静态库。
    首先新建一个工程,如下图,选中生成.a静态库,


    Snip20151226_2.png

    比如说叫mathTool,在然后里面封装一个两个数相加的方法。

    #import "mathTool.h"
    +(NSInteger)num1:(NSInteger)num1 AddNum2:(NSInteger)num2
    {
        return num1 + num2;
    }

    然后操作如下图:


    Snip20151226_1.png

    这几步的操作是为了将 .h这些头文件添加到生成的静态库中,不过貌似从Xcode7.0还是哪个版本之后系统会默认帮你做。
    接下来将编译环境切换到真机编译一下(不需要插上真机,仅仅编译而已不是运行),再切换到模拟器环境编译一下。
    要注意的是,模拟器环境编译前需要做一件事情。如下图:


    Snip20151226_5.png

    这样做的目的是为了支持所有模拟器的CPU架构,不同模拟器的架构是不一样的,分别如下:

    模拟器使用的CPU架构
    iPhone4s-iPhone5 : i386
    iPhone5s-iPhone6plus : x86_64

    真机使用的CPU架构
    iPhone3gs-iPhone4s : armv7
    iPhone5-iPhone5c : armv7s
    iPhone5s-iPhone6plus : arm64
    唯一特殊:只要支持armv7的静态库可以在armv7s上正常运行

    现在会发现之前的房子图标变色了,然后去它所在的文件夹去看看。
    右键点击后点击show in Finder。


    Snip20151226_3.png

    会发现出现了2个文件,这两个文件夹一个是真机环境使用的.a静态库,一个是模拟器环境使用的.a静态库。


    Snip20151226_4.png

    如果想知道某个库到底支持什么架构的话,打开你的终端,输入终端指令 :
    lipo -info 库的路径
    现在如果想在模拟器测试库,就将后缀为simulator的文件夹拖进项目中,想在真机测试,就将后缀为os的文件夹拖进项目中。
    如果想两种环境都支持,那么就要对这两个文件夹中的静态库进行合并,首先打开终端并利用cd指令进入到Products,然后利用终端输入:

    lipo -create 静态库1路径 静态库2路径 -output 合并的静态库

    这样合并出来的.a静态库就会支持所有的编译环境了。
    之后再加上所有的.h文件就可以使用了。

    转载于 : http://www.jianshu.com/p/234601f56e16

    展开全文
  • 编译iOS使用的.a库文件

    万次阅读 2014-11-03 15:50:04
    编译iOS使用的.a库文件

    首先是需要编译成.a的源文件

     

    hello.h

    #ifndef __INCLUDE_HELLO_H__
    #define __INCLUDE_HELLO_H__
    
    void hello(const char *name);
    
    
    #endif // end __INCLUDE_HELLO_H__
    


    hello.c

    #include "stdio.h"
    
    
    void hello(const char *name)
    {
        printf("Hello world %s\n", name);
    }
    


    1、用xcode创建一个library的工程




    2、进行配置

    删掉原来的.h和.m:



    把上面的.c和.h加入到工程中:



    配置项目的最低配置为iOS6.0




    3、编译一下,得到libhello.a



    打开到目录中,可以查看,已经同时生成了模拟器的.a库和真机的.a 库




    4、在测试项目进行测试所生成的.a

    模拟器的:




    真机的(需要加载的库注意是不一样的):





    5、把真机库和模拟器库合并到一块

    用lipo -create (要合并到一起的三个文件) -output (合并到一起的文件名)

    首先我把这两个文件复制到桌面,然后修改对应的名字,一个为libhelloi386.a另一个为libhello7.a,然后在终端执行下面的命令:





    6、整个测试项目的下载地址(包含iOS测试项目和lib库项目)

    csdn下载地址:http://download.csdn.net/detail/zengraoli/8115253

    展开全文
  • ios 合并真机和模拟器的.a文件

    千次阅读 2013-05-12 10:33:21
    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/...
  • Framework的创建与合并

    万次阅读 2014-11-02 23:22:33
    由于.a不能单独使用,必须要配合.h头文件,而且没有包含资源文件,所以用.framework就是更好的选择了。
  • iOS--合并工程

    千次阅读 2016-11-25 16:24:37
    https://segmentfault.com/a/1190000006169949 “推荐这个”http://www.th7.cn/Program/IOS/201504/433337.shtmlhttp://blog.csdn.net/e20914053/article/details/50170487http://blog.csdn.net/azhou_hui/articl
  • 前言  (1)这个时候就得说下静态库,动态库区别。  静态库:1....2.避免少量改动经常导致大量的重复编译链接。3.也可以重用,注意不是共享使用。  ...动态库:1....2.使用动态库,多个应用程序共享内存中得同一份库文件...
  • iOS两个.a文件合并成一个.a文件

    千次阅读 2016-04-18 16:34:06
    网上流传了太多关于合并lib库的方法,自己也尝试过,但大多失败。有感于这种急于解决问题,经过百般尝试后依旧无果的无奈心情,小翁在这里用一个实例来完整...本文的目标:合并libDomobOfferWallSDK.a、libDomobAdWa
  • iOS 第三方库冲突的处理

    万次阅读 2015-01-25 00:11:38
    现象 最近项目组在做一些第三方功能的集成,不止一次的遇到第...123456duplicate symbol _OBJC_METACLASS_$_JKSerializer in: /Users/tony/Desktop/XXXProject/Lib/libMiPushSDK.a(JSONKit.o) /Users/tony/Libra
  • 静态库的样子就是用户拿到的文件有很多头文件.h+资源包+编译过的一个二进制文件.a(.framework)。即没有公开的那些文件都被编译进了.a或.framework里面。如果是为了保护知识产权什么的可以用静态库。
  • Git 状态 M,T,D,A,U

    千次阅读 2015-03-25 16:05:44
    在使用git checkout , git status,或git diff files时会出现一些状态标志,M,T,D,A,R,U等等。 如: # git status -s A code_iOS/UnionRich1.0/UnionRich/Png/zhifuImage/payway_icon_wechat@3x.png A ...
  • iOS 合并.a文件,制作通用静态库

    千次阅读 2015-03-19 00:26:53
    lipo -create SQY/iOS/iphoneos/libGamePlusAPI.a SQY/iOS/iphonesimulator/libGamePlusAPI.a - output SQY/iOS/libGamePus.a 其中SQY/iOS/iphoneos/libGamePlusAPI.a //为真机库。  SQY/iOS/iphonesimul
  • IOS 4.2 编写通用的静态库.a文件

    万次阅读 2012-12-13 18:19:21
    IOS产生.a的静态库,比起.framework相对简单了好些。   下面介绍一下具体生成步骤: 1、新建一个framework&library库。IOS 下的cocoa touch static library。然后输入product name 为libsql   2、把...
  • 判断其支持架构: 1.进入到framework目录下 cd /Users/.../xFramework.framework 2.输入命令 lipo -info xFramework ... in the fat file: xsdkFramework are: armv7 arm64 不支持模拟器 ....a文件也是一样
  • IOS 用lipo ar 拆分 合并 .a

    千次阅读 2018-08-15 10:59:13
    本文的目标:合并libDomobOfferWallSDK.a、libDomobAdWallCoreSDK+UI.a、libDomobAdSDK.a Let`s begin! 1.依次查看所有需要合并的lib库所支持的框架类型。i386表示支持iphone模拟器,armv6应用在...
  • iOS SDK开发步骤

    千次阅读 2019-06-21 10:56:19
    打开xcode ->选择Framework&Library中的Cocoa Touch Static Library如下图: ... 删除没有必要的.m文件 ...添加UI这里:这里以alertView 为例如图 ...接下来就是在YDemoSDK.h 文件中引入#import “CustomIOSAl...
  • 而.a文件出了静态库本身外,还需要引入.h文件,而.framework就不需要如此,由于.framework的方便性所以一般情况下我们见到的较多。什么是库库从本质上来说是一种可执行代码的二进制格式,可以被载入内
  • IOS中引用另一个工程

    千次阅读 2017-06-26 17:00:20
    工程引用: 1.Add Files to(当前工程) 2.选择需要引用的工程 ...3.将需要引用的工程的路径添加到header ...4.添加关联Build Phases Link Binary With Libraries (另一个工程文件的.a或.app文件) 这一步很重要,
1 2 3 4 5 ... 20
收藏数 24,839
精华内容 9,935
关键字:

.a合并 ios