美文网首页
iOS 生成 .a 和 framework

iOS 生成 .a 和 framework

作者: 居然是村长 | 来源:发表于2016-04-23 23:04 被阅读194次

    .a 文件的生成

    • 1 创建 .a (Library)
    Framework & Library - Cocoa Touch Static Library
    
    • 2 导入自己的各种文件
    使用新建自带的.h文件作为头文件,包含自己的所有 .h 文件
    
    • 3 Build Phases - Copy Files
    添加所有想要暴露的文件
    
    • 4 编译生成 .a 文件
    1 分为 Debug 版本 Release 版本
    2 还分 真机版本 和 模拟器版本
    所有共有 4 个版本。
    
    注意设置:Build Active Architecture Only - NO(不然只对应当前设备型号)
    
    所以编译时,需要选择上面的 两两组合各编译一次。
    
    成功后 Products - 中的 .a 就变黑了,Show in Finder 找到!
    
    
    • 5 合并 上面的任意组合 .a
    lipo -create pathA.a pathB.a -output newPath.a
    
    例如:
    lipo -create  /Users/juyiwei/Desktop/eq/Debug-iphoneos/libJYWLibrary.a   /Users/juyiwei/Desktop/eq/Debug-iphonesimulator/libJYWLibrary.a    -output /Users/juyiwei/Desktop/TTTT.a
    
    生成的 newPath.a 就包含了2组信息(使用同一组 .h 文件)
    
    
    • 6 注意
    静态库包含 category 需要在项目 other Linker Flags 中添加 -ObjC
    

    framework 库

    • 1 创建 .framework (framework)
    Framework & Library - Cocoa Touch Static Library
    
    • 2 导入自己的各种文件
    使用新建自带的.h文件作为头文件,包含自己的所有 .h 文件
    
    • 3 Build Phases - Copy Files
    添加所有想要暴露的文件
    
    • 4 编译生成 .a 文件
    1 分为 Debug 版本 Release 版本
    2 还分 真机版本 和 模拟器版本
    所有共有 4 个版本。
    
    注意设置:
    1- Build Active Architecture Only - NO(不然只对应当前设备型号)
    2- Mach-OType : Static Library(静态库,不能动态的,苹果不允许)
    
    所以编译时,需要选择上面的 两两组合各编译一次。
    成功后 Products - 中的 .a 就变黑了,Show in Finder 找到!
    
    
    • 5 合并 上面的任意组合 .framework
    注意:合并的不是.framework 本身,而是里面的无后缀二进制文件(类似.a)
    
    lipo -create pathA pathB -output newPath
    
    例如:
    lipo -create  /Users/juyiwei/Desktop/eq/Debug-iphonesimulator/JYWFrameWork.framework/JYWFrameWork  /Users/juyiwei/Desktop/eq/Debug-iphoneos/JYWFrameWork.framework/JYWFrameWork    -output /Users/juyiwei/Desktop/JYWFrameWork
    
    生成的 newPath 就包含了2组信息(然后替换之前其中一个的就可以拿来用了)
    
    
    • 6 注意
    1 静态库包含 category 需要在项目 other Linker Flags 中添加 -ObjC
    2 静态库包含 .dylib或者.tbd,需要在实际项目中导入.dylib或者.tbd动态库,然后需要设置【Allow Non-modular Includes ....】为YES。
    
    

    1

    相关文章

      网友评论

          本文标题:iOS 生成 .a 和 framework

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