美文网首页
制作静态库

制作静态库

作者: Install_be | 来源:发表于2018-06-15 18:13 被阅读0次
  • 制作静态库


    创建静态库
  • frameWork 默认是动态库
    BuildSetting —> 搜索 “Mach” 更改为Static Library

  • 查看支持架构:lipo -info 静态库名称
制作静态库一般在release 环境下工作生成的库可以支持所有架构
4s—>5 :i386
5s—>6plus : x86_64
真机:
3gs —> 4s : armv7 (静态库只要支持armv7,就可以支持armv7s
5 – > 5c : armv7s
5s —>X :arm64
  • 静态库合并、分离:
    - 合并:$: lipo -create 库1 库2 -output 新的路径
    - 分离:$:lipo [通用库] -thin [armv7/arm64] -output [输出路径]
  • 静态库 瘦身 reduce lib size
* make sure that you set Generate Debug Symbols to NO in your build settings. This can reduce the size of your static library by about 30%.
点击 target -> build settings -> Generate Debug Symbols ->设置为NO

* In your target's build settings look for 'Optimization Level'. By switching that to 'Fastest, Smallest -Os' you'll permit the compiler to sacrifice some speed for size.
击 target -> build settings -> Optimization Level ->设置为Fastest, Smallest -Os

Technical Q&A QA1490 :
"An impedance mismatch between UNIX static libraries and the dynamic nature 
of Objective-C can cause category methods in static libraries to not be linked 
into an app, resulting in "selector not recognized" exceptions when the methods 
aren't found at runtime."

这段话的意思就是:链接器在处理包含Category方法的UNIX的静态库时,没有将
Category的方法链接到APP中,造成这个错误。具体的细节在本文的补充部分展开。 

可以看出,解决这个错误的方法就是:将Category的方法链接到APP中,这样
APP运行时,就能够找到对应的selector。而 –ObjC就可以完成这个任务。"-
ObjC"的作用是:将静态库中任何Objective-C代码都链接到APP中。任何
Objective-C代码当然也包括Category的方法。可以看出,使用-ObjC可能会链接
很多静态库中未被使用的Objective-C代码,极大的增加APP的代码体积。

"-ObjC" 的兄弟

Flags 位置 作用
-Objc Other Linker Flags 链接静态库中所有的Objective-C代码
-all_load Other Linker Flags 链接静态库中所有的代码
-force_load Other Linker Flags 链接指定静态库中所有的代码

相关文章

  • iOS小知识 -- 静态库(一)

    静态库静态库的介绍.a静态库的制作以及测试静态库的架构问题.framework静态库的制作以及测试边开发边制作静态...

  • iOS动态库、静态库及使用场景、方式

    前面介绍过制作过程,这里不讲如何制作动态库、静态库。 静态库和动态库都是以二进制提供代码复用的代码库。 静态库常见...

  • 制作静态库

    制作静态库创建静态库 frameWork 默认是动态库BuildSetting —> 搜索 “Mach” 更改...

  • iOS 制作静态库

    制作静态库 动态库:.dylib .framework 静态库:.a .framework 两者区别*:动态库时在...

  • ios中静态库.a的制作

    在ios中制作静态库之前,先来了解关于静态库的一些概念。 八、静态库和动态库在使用上的区别。静态库:链接时,静态库...

  • ios中静态库.a的制作和使用

    在ios中制作静态库之前,先来了解关于静态库的一些概念。 八、静态库和动态库在使用上的区别。静态库:链接时,静态库...

  • iOS 开发库的制作

    注:本文只是简单的介绍一家静态库(framework)的制作。 静态库制作(创建framework)创建frame...

  • iOS framework制作及使用(包含xib和图片)

    制作framework目的:保密项目代码.制作SDK时常用静态库与动态库简介:静态库:链接使用时完整地拷贝至可执行...

  • swift ios 静态库的实现

    1.swift不支持.a的静态库,因此只能制作.framework的静态库 2.静态库的使用 3.纯swift静态...

  • 静态库学习(三)

    一、framework的制作.framework的静态库制作和.a静态库的制作有三个不同的地方,其他基本一致。 1...

网友评论

      本文标题:制作静态库

      本文链接:https://www.haomeiwen.com/subject/fnbmeftx.html