美文网首页
SDK静态库-.a开发应用(OC)

SDK静态库-.a开发应用(OC)

作者: 小凡凡520 | 来源:发表于2020-04-14 12:52 被阅读0次

    swift 文件无法暴露头文件,因而不支持静态库.a开发!!!!!

    一、新建工程

    首先创建一个新的工程,选择ios --》Framework&Library --》 Cocoa Touch Static Library 工程名例如 DemoA


    2018101216374751.png 20181012163844894.png

    之后我们会看到自动生成.h和.m文件 可以在.m文件中写你要的代码 或者新建.h和.m文件,将自动生成的删除了

    20181012164024594.png 20181012164332129.png 20181012164452415.png
    二、选择需要公开的头文件
    20181012164817552.png
    三、静态库需要支持的版本和架构
    20181012165049454.png

    修改配置 Active Architecture Only修改为NO,否则生成的静态库就只支持当前选择设备的架构


    2018101216515849.png
    四、编译生成.a文件

    真机编译的.a 文件 选中真机编译,对应生产一个真机的.a 文件

    20181012164636942.png

    选择Generic iOS Device,command+b完成后,在工程的Products文件夹下的.a文件从红色编程了黑色。编译成功,然后Show in Finder

    20181012165630385.png

    下图是真机.a

    20181012165904403.png

    模拟器编译的.a 文件 选中模拟器编译,对应生产一个模拟器的.a 文件

    201810121700099.png

    command+b完成后,在工程的Products文件夹下的.a文件从红色编程了黑色。编译成功,然后Show in Finder。对应的模拟器的.a文件

    20181012170056753.png 20181012170142653.png
    五、lipo命令

    用命令lipo -info 静态库名字来查看,是支持真机还是模拟器

    20181012170513234.png

    如图 Debug-iphonesimulator里面支持i386、x86_64,属于模拟器,用到真机会报错

    20181012170714429.png

    Debug-iphoneos里面支持armv7、arm64,属于真机,用到模拟器就会报错

    六、合并静态库

    合并静态库-让模拟器和真机使用一个静态库

    lipo -create 第一个.a文件的绝对路径 第二个.a文件的绝对路径 -output 最终的.a文件路径
    
    20181012170912366.png

    这个生成的.a文件,就是支持真机和模拟器的静态库了。创建一个文件夹,把.a和头文件拖进去,这个文件夹就是我们所需要的。一般上线的时候只导入真机的,这样工程的体积也会小一些


    20181012171018924.png
    七、使用静态库

    新建一个工程,把我们的静态库拖进去,导入头文件


    20181012171226130.png 20181012172253343.png

    运行效果

    20181012172454874.png

    注意 如果静态库中有Category类,就要在使用静态库项目的配置中添加-ObjC或者-all_load

    相关文章

      网友评论

          本文标题:SDK静态库-.a开发应用(OC)

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