美文网首页
Xcode7 制作通用的framework

Xcode7 制作通用的framework

作者: zhangyin | 来源:发表于2016-07-17 19:39 被阅读181次

[转]
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: 在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代码如下:

view plain copy 在CODE上查看代码片派生到我的代码片

#import <Foundation/Foundation.h>
@interface TestLog : NSObject
- (void)TestLog;
@end

TestLog.m代码如下:
view plain copy 在CODE上查看代码片派生到我的代码片
#import "TestLog.h"
@implementation TestLog
- (void)TestLog
{
NSLog(@"这里是静态库输出日志\n");
}
@end

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

[objc] view plain copy 在CODE上查看代码片派生到我的代码片
#ifndef TestFramework_h
#define TestFramework_h
#import <TestFramework/TestLog.h>
#endif
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/qiuxinpeng/Library/Developer/Xcode/DerivedData/TestFramework-fbsabrufooufevekcmufbujjyjau/Build/Products/Debug-iphoneos/TestFramework.framework/TestFramework /Users/qiuxinpeng/Library/Developer/Xcode/DerivedData/TestFramework-fbsabrufooufevekcmufbujjyjau/Build/Products/Debug-iphonesimulator/TestFramework.framework/TestFramework -output /Users/qiuxinpeng/Library/Developer/Xcode/DerivedData/TestFramework-fbsabrufooufevekcmufbujjyjau/Build/Products/NewTestFramework

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

相关文章

  • Xcode7 制作通用的framework

    [转]1.新建一个静态库工程.file→ new→ project, 弹出框中选择iOS→ framework &...

  • Xcode7 打包Framework 相关问题

    关于Xcode7 framework打包方法这里不详细介绍了,请查看以下链接iOS-制作Framework最新 D...

  • xcode创建静态库和framework

    xcode创建静态库和framework创建framework 另外:附上frameWork制作通用动态库脚本

  • 制作通用的framework

    1.新建一个静态库工程 file→ new→ project, 弹出框中选择iOS→ framework & li...

  • 制作通用的Framework

    创建Framework的流程这里就不在多说,直接介绍生成通用Framework的方法; 1:在 TARGETS 中...

  • Xcode7 制作Framework

    今天写完了一个小框架,需要打包成framework供项目使用,于是查阅了相关资料,终于完成了打包的工作,在这里记录...

  • xcode7制作framework

    之前由lib直接制作framework并没有成功,现在不妨试试利用Xcode自带的framework框架来制作,会...

  • 制作通用的Framework _MarkDown

    创建Framework的流程这里就不在多说,直接介绍生成通用Framework的方法; 1:在 TARGETS 中...

  • xcode7 插件制作入门

    xcode7 插件制作入门 xcode7 插件制作入门

  • iOS Xcode7 制作Framework

    原文出处 自己在公司做了一段时间sdk,经历了从一开始的无从下手,到现在的顺利发布,期间吃了不少的亏,现在来总结一...

网友评论

      本文标题:Xcode7 制作通用的framework

      本文链接:https://www.haomeiwen.com/subject/urcpjttx.html