• iOS开发之静态库.a的制作教程


    第一种方法:直接新建一个工程。

    1、新建项目-> 选择 “Cocoa Touch Static Library”

    2、添加库需要包含的源代码,将你工程里的代码添加到打静态库工程里:

    3、配置一下工程:

    4、选择需要暴露出来的 .h 文件, .m 文件会自动编译到 .a 文件中:

    需要暴漏出的文件类在这里设置:

    引入的网络框架设置:(有些会自动引入,有些需要手动引入,根据编译报错,可以检查。)

     

    5、编译前检查一下是debug模式还是release模式,选择release模式:

    分debug和release模式:

    Debug-iphoneos 文件夹里面的东西是用在真机上的

    Debug-iphonesimulator 文件夹里面的东西是用在模拟器上的

    如果 Scheme 是 Release 模式,生成的文件夹就以 Release 开头

     

    6、选择真机设备,然后 Command+B 编译, libSPCustomerServerse.a 文件从红色变为黑色

    (注意建议先选择真机,这样才会变色,如果先选择模拟器,那么编译通过了,但是不会由红变黑,实际上是已经编译了模拟器的,只是给人一种假象,好像没编译一样,还是红色的)

     

    7、选择模拟器,建议选择iPhone6以上的(选择高级点的,低级的也可用,若选了低级的,高级的有可能就不适配了)然后依然 Command+B 编译,模拟器和真机环境下用的 .a 文件是分开的。

     

    8、合并模拟器(release-iphonesimulator)和真机(release-iphoneos)下的.a,以便支持真机和模拟器,合并后的.a大小大约是不合并的2倍左右。

    show in finder

    合并步骤:

    举例:1、新建文件夹:"dabao";

    2、将上述的release-iphonesimulator和release-iphoneos两个文件拷贝进"dabao"文件夹。

     

    3、打开终端,执行以下操作:

    一、在终端输入:lipo  -create

    二、将release-iphonesimulator下的.a拖进终端,输入一个空格;

    三、继续将release-iphoneos 下.a 拖进终端,输入空格;

    四、继续输入:-output ,打个空格;

    五、输入合并后的.a所要放的文件路径(这里举例依然放在“dabao”这个文件夹下,则我的电脑的路径为:/Users/ntalker-zhou/Desktop/dabao/libSPCustomerServerseSDK.a),回车,在相应的文件下即可生成一个.a,该.a即是合并后的.a



    4、检查合并后的.a是不是满足所有要求,依然在终端进行以下操作:

    一、在终端输入:lipo  -info   ;

    二、将合并后的.a拖进终端 ,回车;

     

    (注意:终端每一步记得要用空格隔开,否则会出错哦!)

    这样.a 就成功制作出了,只需要将暴漏的头文件以及制作的.a放入工程,别人就可以使用你的程序了,再也不用担心源码暴漏或别人随意修改你的代码了,不过如果有图片资源,图片资源是不能打进.a的,需要在外面添加的哦。

    (有时候为了编译通过,根据需要,需要设置一下工程配置比如我需要配置xml等…

    第二种方法:在原有工程上操作,打开已存在的工程,然后添加一个要做成.a静态库的 Target 在此,简单命名为mylibrary

    此处可以看到,新建的Target 里面同时具有 mylibrary.h mylibrary.m 这个咩有用,可以直接删除。

    然后就是怎么弄自己的静态库了,你有一些.h  .m 文件需要打成静态库,先把你需要打成静态库的东西复制一份,放好,然后把你工程里的那一份.h .m 删除,然后把你刚才复制的那一份拖进工程,选择Targets 里面的工程名和静态库名称。即两个对号都打上。然后添加上。下图是创建新的.h .m的操作,等同于直接add操作。

     

    然后选择 静态库

    同时 Edit Sheme

    然后  Run 就可以看到 原来的红色的显示,变成了正常的

  • 相关阅读:
    代码走读 airflow 2
    sql 查询相关
    控制你的鼠标和键盘
    TODO
    二进制流的操作收集
    daterangepicker-双日历
    datetimepicker使用
    ADO执行事务
    动态添加表sql
    执行带返回值的存储过程
  • 原文地址:https://www.cnblogs.com/fengmin/p/5445199.html
Copyright © 2020-2023  润新知