iOS中。和.framework静态库的创建与.bundle资源包的使用详解

  

  

开发中经常使用三方库去实现某特定功能,而这些三方库通常又分为开源库和闭源库。开源库可以直接拿到源码,和自己写的没有什么区别,我们可以最大程度的修改源码来适应自己功能。闭源库就是被发布者提前打包好的静态库或捆包,对此我们无法看到内部实现,对于其封装好的特定功能,我们也只需要调用其开放的API即可。

  

在正式的上代码之前,先介绍一些从网上搜集的静态库相关的基本概念,以加深对后面知识的理解

  

<强> 1。库

  

库实际上是一种代码共享的方式,主要用于代码重用和源码隐藏,通常分为动态库和静态库。

  

<强> 2。区别

  

静态库:链接时完整的拷贝至可执行文件中,被多次使用就有多份冗余拷贝。

  

动态库:链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存空间。

  

<强> 3。iOS中静态库的形式

  

在iOS中静态库以。和.framework的形式存在,动态库以. dylib和.framework的形式存在。

  

之所以.framework既可能是动态库又可能是静态库,是因为苹果公司禁止用户级应用使用动态库,而自己却又堂而皇之的使用动态库,这就造成了iOS中系统级的.framework是动态库,用户级的.framework是静态库(无可奈何啊)。

  

本文就来讲解一下。和.framework静态库的创建与.bundle资源包的使用。

  


  

  

库分静态库和动态库两种。从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。

  

静态库和动态库是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。

  

<强>静态库的形式

  

形式为:。一个和.framework两种

  

其中.framework类型的库如果是系统内部的是动态库,我们自己创建的是静态库
  

  

<>强。一个和.framework的区别

  

。是一个纯二进制文件,.framework中除了有二进制文件之外还有资源文件。
  

  

。文件不能直接使用,至少要有. h文件配合,.framework文件可以直接使用。
  

  

。+ . h +源文件=.framework。
  

  

建议用.framework。
  

  

<强>静态库的优势

  
      <李>方便共享代码,便于合理使用。   <李>实现iOS程序的模块化。可以把固定的业务模块化成静态库。   <李>和别人分享你的代码库,但不想让别人看到你代码的实现。   <李>开发第三方sdk的需要。   
  

创建和打包。静态库

  
      <李>创建静态库项目
      iOS——比;框架,图书馆——比;Cocoa Touch静态库李   <李>把需要编译成静态库的代码拖进项目李   <李>设置可见的。h文件。
      构建阶段——比;复制文件添加。h文件即可。
      李   
  

 iOS中。和.framework静态库的创建与.bundle资源包的使用详解

  

 iOS中。和.framework静态库的创建与.bundle资源包的使用详解

  

 iOS中。和.framework静态库的创建与.bundle资源包的使用详解

  

 iOS中。和.framework静态库的创建与.bundle资源包的使用详解

  

1。修改支持的架构
  

  

,,,,4.1设置支持所有模拟器架构构建设置——比;建立活跃的建筑只有——比;调试改为没有
  

  

,,,,4.2设置支持所有手机架构

  

2。编译
  

  

,,,,编译一次模拟器,编译一次手机。
  

  

,,,,会生成。一个文件和可见的头文件。
  

  

,,,,使用命令行,合并刚刚生成的的两个路径,到另一个路径,例如:
  

  

,,,,脂肪——创造模拟器自由路径真机自由路径与产出/用户/用户名/桌面/libPSSTest.a

  

3。使用静态库
  

iOS中。和.framework静态库的创建与.bundle资源包的使用详解