zoukankan      html  css  js  c++  java
  • 【转】xcode4.2 4.3下framework制作教程

    将自己的类封成库供别人调用,非常方便,就行xcode中的许多类库一样。那么如何制作自己的类库呢?

    本人在网上看过很多童鞋的文章,都没有试成功,最后在同事的帮助下搞定。今天有点空闲时间,赶紧记下来,一是跟大家分享,二是怕忘了,今天有同事问我,都感觉有点生了,所以有了这篇文章。

     

    下面教大家一步步制作framework

     

     

    1、         新建一个项目选择Framwork&Library中的Cocoa Touch Static Library。如图

     

     

    2、         命名项目名称

     

     

    3、         加载自己要封装的东西

     

     

    4、         加载自己的代码

     

     

    5、         选择设备和模拟器两种方式,编译生成libhello_world.a文件

     

     

    6、         查看是否生成两个文件

     

     

    7、         选择Fill——>New——>Taget弹出界面选择Aggregate

     

     

    8、         命名类库的名称

     

     

    9、         选择Taget :HelloWorldBulid Phases选项卡

     

     

    10、     添加Taget

     

     

    11、     点击又下角Add Build Phase,选择Add Run Script。贴上这段脚本

    xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphonesimulator -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build

     

    xcodebuild -project ${PROJECT_NAME}.xcodeproj -sdk iphoneos -target ${PROJECT_NAME} -configuration ${CONFIGURATION} clean build

     

     

    12、     同样的方法添加另一个脚本,脚本的意思我没有研究,你可以详细看看

    SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/lib${PROJECT_NAME}.a" &&

    DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/lib${PROJECT_NAME}.a" &&

    UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal" &&

    UNIVERSAL_LIBRARY_PATH="${UNIVERSAL_LIBRARY_DIR}/${PRODUCT_NAME}" &&

    FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${PRODUCT_NAME}.framework" &&

     

    # Create framework directory structure.

    rm -rf "${FRAMEWORK}" &&

    mkdir -p "${UNIVERSAL_LIBRARY_DIR}" &&

    mkdir -p "${FRAMEWORK}/Versions/A/Headers" &&

    mkdir -p "${FRAMEWORK}/Versions/A/Resources" &&

     

    # Generate universal binary for the device and simulator.

    lipo "${SIMULATOR_LIBRARY_PATH}" "${DEVICE_LIBRARY_PATH}" -create -output "${UNIVERSAL_LIBRARY_PATH}" &&

     

    # Move files to appropriate locations in framework paths.

    cp "${UNIVERSAL_LIBRARY_PATH}" "${FRAMEWORK}/Versions/A" &&

    ln -s "A" "${FRAMEWORK}/Versions/Current" &&

    ln -s "Versions/Current/Headers" "${FRAMEWORK}/Headers" &&

    ln -s "Versions/Current/Resources" "${FRAMEWORK}/Resources" &&

    ln -s "Versions/Current/${PRODUCT_NAME}" "${FRAMEWORK}/${PRODUCT_NAME}"

     

     

    13、     点击右下角的Add Build Phase,选择Add Copy Files。在Destination选项中选择Absolute Path,在Subpath路径加载路径:${BUILD_DIR}/${CONFIGURATION}-iphoneuniversal/${PRODUCT_NAME}.framework/Versions/A/Headers

     

     

    14、     点击“+按钮”,加载你要封装的.h文件

     

     

     

     

    15、     选择Taget: HelloWorld进行编译

     

     

    16、     然后选择libhello_world.a文件,右键选择Show in FinderDebug-iphoneuniversal就是生成的framework

     

     

    17、     如果Headers文件夹里面为空,则把你封装的.h文件复制到里面,之后就可以在你的程序中使用了。

    18、     至此framework制作完成,效果图:

     


    另一篇文章的介绍:

    http://blog.163.com/const_yixinyiyi/blog/static/180088172201211113333882/

  • 相关阅读:
    【iOS系列】-iOS的多线程解析
    【iOS系列】-单例模式的实现
    Mac下Apache+MySQL+PHP安装
    【ios系列】-Quartz 2D常用方法介绍
    【ios系列】-数据储存
    【iOS系列】-文件管理
    我是怎么用FullCalendar记录我的2013年(辞职N次,面试2N次)的,它还兼容IE6
    2014年我去哪里过年?
    unity3d Human skin real time rendering plus 真实模拟人皮实时渲染 plus篇
    Unity3d shader之次表面散射(Subsurface Scattering)
  • 原文地址:https://www.cnblogs.com/wengzilin/p/2461481.html
Copyright © 2011-2022 走看看