iOS的Framework静态库

静态库VS动态库

  • 静态库不需要签名,动态库需要签名。
你们的老婆叫你们点赞

制作混编静态库

  • 库内部Swift调用OC的头文件
    Swift调用OC时,库里面不能使用bride桥接文件,需要将OC头文件加入到工程头文件中XFramework.h

  • 库内部OC调用Swift的头文件
    所有库内部编译的Swift头文件都在里面,OC调用时导入头文件

    #import 
    

    ⚠️Swift文件类的权限可以使用openpublic,扩展的权限使用public

    ⚠️Swift4.0的方法如果要在OC使用,必须手动添加@objc才能编译到头文件中。最好对所有的Swift接口都加上@objc public

  • 对外提供访问文件:

    在库工程的Build PhasesHeaders里面管理头文件。

    供外部访问的OC文件加入到Public中。

    Swift文件建议都加入到Private中。Swift文件加入到Public后会对外开放源码。

添加库:

库可以直接使用.framework或者子工程添加。

  • 使用.framework

  • 使用子工程

调用库文件:

  • 调用库的OC文件:

    OC头文件一般都在XFramework.h中:

    #import 
    

    Swift头文件一般都在中:

    #import 
    
  • 调用库的Swift文件:

    有两种方式都可以。

    1. 一种是在本地bridge中添加头文件,另一种方式是。

      #import 
      #import 
      
    2. 在Swift中导入Framework

      import XFramework
      

扩展问题

需要在Targets的build setting选项下有Other linker flags的设置加上-Objc或者-all_load或者-force_load

-all_load表示对所有库加上链接库。

-force_load只对指定库加。

-force_load $(SRCROOT)/XFramework.framework/XFramework

Demo地址

上传中...

你可能感兴趣的:(iOS的Framework静态库)