zoukankan      html  css  js  c++  java
  • 在 xcode 4 下为 iOS 制作 framework

    写在前面:

    通过 Framework 可以在物理上实现 iOS 程序的模块化。

    好处:

          1、如果模块间接口定义的比较完善,模块化的程序具有很好的可扩展性与内聚性;

          2、物理上的模块化便于开发过程的管理与测试,尤其是在程序规模相对大。

          3、如果可以使用胶水语言作为粘合剂,程序可以用很少的代价适应未来的变化。

    不足:

          1、由于是静态库,应该不会有什么运行时的损失,但是没试验过,不确定。

          2、资源的加载这部分,不知道会不会占用更多内存,没试验,不确定。



    1、新建一个静态库工程:

     

     

    2、删除向导所生成工程中的 Target:

    删除目标前工程状态


    删除目标后工程状态



     

    3、删除旧目标对应的工程文件夹:

    删除前


    删除后



     

    4、删除旧目标对应的编译设置(Product菜单| Edit Scheme命令):

     

    点击左下角的 Manage Schemes 按钮:


    选中旧的 Scheme,点击左下角的减号删除:

    删除完成后,点击 OK 返回。



     

    5、增加一个新目标。点击 “Add Target”


    在弹出的对话框中选择 Mac OS X 下的 Bundle:

    如上图,给库取一个名字,保持默认的 Framework(CoreFoundation),然后点击 Finish。



     

    6、修改新目标的工程设置。选中 TARGETS 中对应的目标, Build Settings 页:

     

    在 Architectures 下,将”Base SDK”改为”Latest iOS”,然后将 “Architectures” 改为 “Standard”:

     

    在 Deployment 下,将 “Mac OS X Deployment Target”改为”Compiler Default”,将 “Targeted Device Family”改为需要的,此处改成了”iPhone/iPad”,同时可以根据需要修改 “iOS Deployment Target”,此处改为了 “iOS 3.0”:

     

    在 Linking 中,将 “Dead Code Stripping” 改为 “NO”,将 “Link with Standard Libraries” 改为 “NO”,将 “Mac-O Type” 改为 “Relocatable Object File”:

     

    在 Packaging 中,将 “Wrapper Extention” 改为“framework”:

     

     

     

    7、修改目标的 Info。点击 Info:


    将 “Bundle OS Type Code” 改为 “FMWK”(Framework 的意思):

     

     

    8、修改预编译头:

    修改前


    修改后



     

    9、向工程中添加一个类(ViewController 与 Xib):


    结果如下:

     

     

     

    10、导出相关文件。选中 Target,点击 Build Phases:


    点击右下角的 “Add Build Phase”:


    在弹出的菜单中选择 “Add Copy Headers”,添加完成后,展开 “Copy Headers”:


    点击加号:


    选中需要暴露的头文件,此处我们选择 “ClassA.h”:


    点击 Add 按钮完成添加:


    此时,我们看到导出的文件在 Project 下,这样是不能暴露给别人使用的,将其拖动到 Public 下:


    关于 Framework 的详细说明参考苹果的在线文档:http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183-SW1

     

     

    11、编译项目,查看结果:

     

     

     

    12、这是手工制作 Framework 的方法,网上有人制作了工程模版,可以直接生成 Framework 工程:

    https://github.com/kstenerud/iOS-Universal-Framework

  • 相关阅读:
    曾国藩家书人但有恒、事无不成
    pythonredis
    tableSorter使用介绍
    Python模块学习 subprocess 创建子进程
    曾国藩家书用人必先知人
    身份证号码的规则及验证原理
    KeyDown,KeyPress 和KeyUp 之我谈(更新版本)
    Python基础综合练习
    熟悉常用的Linux操作
    大数据概述
  • 原文地址:https://www.cnblogs.com/Proteas/p/2335674.html
Copyright © 2011-2022 走看看