Xcode5.1制作formework

  1. 新建一个工程,选择framework & library - Cocoa Touch Static Library,命名为TestKit。Xcode5.1制作formework_第1张图片
  2. 删除不必要的文件。TestKitTests 和TestKit target。
  3. 新建一个Bundle 。new-file-target;选择OS X目录下FrameWork&Library中的Bundle,取名为TestiOSKit。
  4. 删除TestiOSKitTestiOSKit-Prefix.pch中的#import<Cocoa/Cocoa.h>。Xcode5.1制作formework_第2张图片
  5. 修改target设置

    Build Settings选项卡:

      Base SDK选择Latest iOS(iOS 7.1)

      Build ActiveArchitecture Only选择NO

      Dead Code Stripping选择NO

      Mach-O Type选择Relocatable Object File

              Link With Standard Libraries选择NO

        Wrapper Extension修改为framework 

     Info选项卡:

     Bundle OS Type code 修改为FMWK 
     Build Phases选项卡:
    首先选择Editor-Add Build Phase-Add Copy Haeders Build Phase,
    Build Phases下会多出一行Copy Headers;
    点击右下角的Add Build Phases,选择AddCopy Headers. 添加头文件和源文件。Xcode5.1制作formework_第3张图片
    删除系统的Frameworks。(Remove References)

              Xcode5.1制作formework_第4张图片

  6. 在TestKit.h和TestMarkKit.m里面写入你的函数声明和实现

  7. 选择Run Scheme
    Xcode5.1制作formework_第5张图片

  8. 查看framework build路径
    点击Xcode右上角Organizer,选择Projects选项卡如图,点击箭头可以进入bulid路径。Xcode5.1制作formework_第6张图片
    或者选择iOS Device运行一下,然后在工程的Products-TestiOSKit.framework右键,show in finder。文件夹下en.lproj和Info.plist都可以直接删除。
    Xcode5.1制作formework_第7张图片

  9. 使用framework

    只需要在新的工程导入并使用就行啦。
  10. 但是我们会遇到一个问题,就是这个framework的包分两个,一个是模拟器,一个是真机,所以我们要把它合并成一个通用的包。

    在finder下是这样的:
    Xcode5.1制作formework_第8张图片
    一个是真机,一个是模拟器,下面开始合并。
    1.先把其中一个framework包放到桌面。
    2.打开终端运行

    lipo -create /Users/Jerry/Library/Developer/Xcode/DerivedData/TestKit-dmdcaxednjyebxgulialinjfjzho/Build/Products/Debug-iphoneos/TestiOSKit.framework/TestiOSKit/Users/Jerry/Library/Developer/Xcode/DerivedData/TestKit-dmdcaxednjyebxgulialinjfjzho/Build/Products/Debug-iphonesimulator/TestiOSKit.framework/TestiOSKit-output /Users/Jerry/Desktop/TestiOSKit
    Xcode5.1制作formework_第9张图片

        说明一下这段代码,红色为固有字段,黑色部分均为路径,前两个是模拟器路径和真机的路径,后面的为输出路径。
        3.把输出的文件TestiOSKit替换第一步放在桌面上的framework里的TestiOSKit,然后这个framework就是通用的了。
    此方法同样适用.a文件的合成。
                  
  11. 我把常用的宏定义和类别做成的framework地址:https://code.csdn.net/yinxianwei88/utilitytools
  12. 本贴参考:
    http://blog.csdn.net/smking/article/details/24434819
    http://blog.csdn.net/mark_creative/article/details/9450887

你可能感兴趣的:(framework)