• iOS 开发 旧版 framework


    0. 参考

    http://www.cocoachina.com/ios/20150127/11022.html

    http://www.cnblogs.com/gcb999/p/3296414.html

    1.概念

      Framework 是资源的集合,将静态库和其头文件包含到一个结构中,供Xcode引入使用。

    1.1. os x 与 ios 区别

      os x 可以创建动态连接的Framework。

      ios 只能是使用静态连接的Framework。

    1.2. 本质

      Framework 是静态库的 “一站式采购点”,是从静态库演化而来。

    2.步骤

    2.1. 创建一个 Cocoa Touch Static Library 工程

      一个静态库工程由头文件和实现文件组成,应该仅需要导入一个头文件,就可以访问该库的所有公开类。

    2.2. 设置工程

    2.2.1. 删除自动生成的实现文件

    2.2.2. 修改生成的头文件

      替换头文件中的内容为 #import <UIKit/UIKit.h>

    2.2.3.. 添加UIKit.framework

      工程导航栏>TARGETS>Build Phases>Link Binary With Libraries>+>UIKit.framework

    2.2.4. 添加phase

      在2.4 所在的目录执行:Editor>Add Build Phases>Add Headers Build Phase。

      如果该项不能选择,则点击下方的Build Phases的区域获取焦点。

    2.2.5. 拖动Header

      把2.3的头文件拖动到2.5中的Public中,这样,别人就可以获取到该头文件。

    2.3. 添加功能

    2.3.1. 拖到工程里面

      把要添加的功能文件夹拖动到工程里面,勾选Copy Items 和 Add to targets。

    2.3.2. 拖动需要共享的文件

      注意 2.2.5里面,Public和private都是可以暴露出来的,不要被误导,而Project是私有的。所以,其实只需要Public和Project就好。需要共享的文件,执行操作同2.2.5就好。

    2.3.3. 添加功能头文件到主头文件

      例如:#import<controls/controls.h>,是用尖括号的。

    2.3.4. 配置Build Settings

    2.3.4.1. 提供目录名

      标识拷贝的公共头文件位置,确保使用静态库时可以定位到相关头文件。

      项目导航栏>Targets>Build Setting,搜索 public header > 双击Public Headers Folder Path> 输入include/$(PROJECT_NAME)

    2.3.4.2. 去掉Debug等选项

      接2.3.4.1,搜索并修改

    • Dead Code Stripping为NO
    • Strip Debug Symbol During Copy为NO
    • Strip Style 为 Non-Global Symbols

    2.3.5. 编译

      选择目标为 Generic iOS Device ,编译,这时,Product下的.a文件已经从红色变为黑色。可以右键>Show in Finder查看。

    2.4 创建Framework

      Framework包含lib,但是又有自己的特殊结构:

      通过添加脚本来完成这个操作

    x. 创建一个依赖开发(Dependent Development)工程

    x.1. 创建一个Single View Application

    Xcode 添加前缀

    x.2. 引入静态库工程

      关闭静态库工程,将 静态库.xcodeproj从Finder中拖入到Xcode中项目同名分组里。这样做方便调试和修改。

    x.3. 添加静态库

    • 项目导航栏>项目工程>Targets>项目>Build Phases>Target Dependencies>+>选择静态库,作为项目依赖库
    • 同样,Build Phases>Link Binary With Liraries>+>选择静态库,作为链接库
  • 相关阅读:
    Oracle
    Oracle11g服务详细介绍及哪些服务是必须开启的?
    数据结构——二叉树树的遍历理论与实现
    MapReduce新版客户端API源码分析
    【编程范式】汇编解释swap方法
    iPhone、iPod和iPad离线固件升级的方法
    Linux备份
    mysql下用户和密码生成管理
    The secret of ROWID
    linux文件权限解说
  • 原文地址:https://www.cnblogs.com/SimonGao/p/4979651.html
Copyright © 2020-2023  润新知