zoukankan      html  css  js  c++  java
  • Xcode7 制作通用的framework(转)

     
    分类:

    1.新建一个静态库工程.

    file→ new→ project, 弹出框中选择iOS→ framework & library中的cocoa touch static library.点击Next,输入product name: TestFramework, 点击Next→ 点击Create.

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

    点击工程名→ 点击TARGETS → 右键Delete.

    3.增加一个新的Target.

    点击Target底部的"+"号,弹出框中选择OS X→ Framework & Library中的Bundle.点击Next,输入product name TestFramework, 点击Finish.

    4.修改新建 Target 的 Building Settings 项.

    a: 选中TARGET→ Build Settings项, 将Architectures→ Base SDK 改为Latest iOS(iOS 9.0), 将Architectures 改为 $(ARCHS_STANDARD);

    b: 在 Deployment项, 选中"Mac OS X Deployment Target", 点击键盘上的Delete键, 将“Targeted Device Family”改成"1,2";

    c: 在 (null) - Deployment项, 修改"iOS Deployment Target"为"6.0",同时修改PROJECT的info下的Deployment Target → "iOS Deployment Target"为"6.0";

    d: 在Linking项, 将"Dead Code Stripping" 改为"NO", "Link With Standard Libraries" 改为 "NO", 将 "Mach-O Type" 改为"Relocatable Object File";

    f: 在Packing项, 将"Wrapper Extension" 改为 "framework";

    5.修改 Target 的 Info 项.

    点击Info, 将 "Bundle OS Type code" 改为 "FMWK"

    6.将要写入静态库的源码文件拖入工程目录, 这里以一个简单的语句输出作为例子

    Command+N 新建一个cocoa Touch class, 名字为TestLog, 点击Next, 点击create;

    TestLog.h代码如下:

     

    1. <span style="font-size:14px;">#import <Foundation/Foundation.h>  
    2.   
    3. @interface TestLog : NSObject  
    4. - (void)TestLog;  
    5. @end  
    6. </span>  

    TestLog.m代码如下:

     

     

    1. <span style="font-size:14px;">#import "TestLog.h"  
    2.   
    3. @implementation TestLog  
    4. - (void)TestLog  
    5. {  
    6.     NSLog(@"这里是静态库输出日志 ");  
    7. }  
    8. @end</span>  

     

    7.删除TestFramework.m, 修改TestFramework.h内容如下:

     

    1. <span style="font-size:14px;">#ifndef TestFramework_h  
    2. #define TestFramework_h  
    3.   
    4. #import <TestFramework/TestLog.h>  
    5.   
    6. #endif</span>  
    8.暴露Headers供外部项目调用接口.

     

    选中Target下的Build Phases, 点击左上角"+"号→ "New Headers Phase", 展开Headers, 点击左下角"+", 选择"TestFramework.h"和"TestLog.h"→ 点击add, 将这两个头文件拖动到上方Public下.

    9.然后分别在iOS Device 和 iOS Simulator 下编译.

    在Window→ Projects中左边选择TestFramework工程, 点击右边的Derived Data右边的箭头,打开Finder, 在../Build/Products目录下有真机和模拟器生成的TestFramework.framework

    10.合并Framework.

    打开终端, 输入:

    cd /Users/Android/Library/Developer/Xcode/DerivedData/TestFramework-aainjryhnvupalarkmoushxwuwdr/Build/Products, 回车;

     

    可以输入lipo -info XXX 来查看库的信息, armv7 arm64的是真机, X86_64的是模拟器;

    输入命令:

    lipo -create /Users/android/Library/Developer/Xcode/DerivedData/TestFramework-aainjryhnvupalarkmoushxwuwdr/Build/Products/Debug-iphoneos/TestFramework.framework/TestFramework /Users/android/Library/Developer/Xcode/DerivedData/TestFramework-aainjryhnvupalarkmoushxwuwdr/Build/Products/Debug-iphonesimulator/TestFramework.framework/TestFramework -output NewTestFramework

    在Products目录下会生成一个NewTestFramework的文件, 将该文件拷贝覆盖TestFramework.framework目录下的TestFramework文件, 新的TestFramework.framework就是真机和模拟器通用的framework.

  • 相关阅读:
    c语言指针详解 经典
    C语言基础知识
    Android常用传感器用法一览(3)
    Android常用传感器用法一览(2)
    iOS UIKit
    iOS深度学习
    iOS深度学习
    UITableView 显示优化
    iOS 开发小记 (七)
    CoreAnimation
  • 原文地址:https://www.cnblogs.com/lingzeng/p/5555857.html
Copyright © 2011-2022 走看看