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代码如下:

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

TestLog.m代码如下:

<span style="font-size:14px;">#import "TestLog.h"@implementation TestLog
- (void)TestLog
{NSLog(@"这里是静态库输出日志\n");
}
@end</span>

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

<span style="font-size:14px;">#ifndef TestFramework_h
#define TestFramework_h#import <TestFramework/TestLog.h>#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.

Xcode7 制作通用的framework相关推荐

  1. ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)

    创建静态库可能出于以下几个理由: 1.你想将工具类代码或者第三方插件快捷的分享给其他人而无需拷贝大量文件. 2.你想让一些通用代码处于自己的掌控之下,以便于修复和升级. 3.你想将库共享给其他人,但不 ...

  2. lipo 制作通用版本 静态库

    2019独角兽企业重金招聘Python工程师标准>>> 利用 lipo 制作通用版本 静态库 由于静态库在device和simulator上要选择不同的版本,因此在实际使用的时候切换 ...

  3. 外架小横杆外露长度规范要求_电缆制作通用工艺规范

    1.范围 本标准规定了电缆制作中的工艺要求. 本规范适用于XXX公司航插电缆. 2.规范性引用文件 下列文件对于本文件的应用是必不可少的.凡是注日期的引用文件,仅注日期的版本适用于本文件.凡是不注日期 ...

  4. 易语言制作通用对话框

    今天来分享如何使用易语言制作通用对话框. 第一步 创建Windows窗口程序并绘制组件 新建Windows窗口程序,这次我们需要绘制一个图片框,一个按钮,一个标签和一个通用对话框,并将按钮命名为&qu ...

  5. Windows程序安装包制作——Qt Installer Framework

    0 前言 Qt提供了制作安装包的工具,本文介绍如何安装和使用. 1 下载 到这里下载QtInstallerFramework-win-x86.exe,即可. 2 安装 双击安装包即可启动安装,保持默认 ...

  6. iOS 合并.a文件,制作通用静态库

    lipo -create SQY/iOS/iphoneos/libGamePlusAPI.a SQY/iOS/iphonesimulator/libGamePlusAPI.a -output SQY/ ...

  7. Unity手游制作记-制作通用镜头控制器

    今天又来搞(zuo)事(you)情(xi)了,今天做什么呢?今天来做一个镜头控制器,用来控制镜头操作. 镜头控制器(摄像机控制器) 所谓镜头,就是我们玩游戏的时候,显示的画面,统称为镜头(也就是摄像机 ...

  8. delphi 快速制作通用LiveUpdate升级程序

    很多朋友开发好程序,又需要时间去开发升级模块,比较麻烦,我在这里给出一个通用升级工具的解决方法. 首先,我们考虑下对这个升级程序或模块的要求,主要是通用性和便捷性这两点:在这里,我忽然想到了网络游戏的 ...

  9. 如何制作通用系统ghost镜像

    作最完美的Ghost纯净稳定版详细档案 制作纯净版的主导思想:尽量兼容各种机子.尽量不要减肥.尽可能干净. 一.安装前的准备 准备一张完整的WINXP.2003系统安装盘 二.安装操作系统(以下均以X ...

最新文章

  1. 【BZOJ4417】: [Shoi2013]超级跳马
  2. hbase启动的时候报错java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
  3. Hazelcast的MapLoader陷阱
  4. python 发邮件_python发邮件
  5. 【Nginx】通过反向代理配置本地图床功能
  6. FAST20 论文学习
  7. c++ vscode 自动注释_WIN下vscode调试C/C++,从零开始生成helloworld项目【2018年6月29日】...
  8. linux查看设备硬件,linux查看硬件信息及驱动设备相关整理
  9. fjblog佛教博客不错
  10. 顺丰同城:香港IPO发行价定为16.42港元
  11. R in action读书笔记(3)-第六章:基本图形
  12. 智能手机拍照进化论:从传感器到算法摄影
  13. CSS之position解释
  14. 学位房如何查询学位真实性和户口是否被占用
  15. 蚂蚁金服首席架构师:区块链技术如何促进数字普惠金融
  16. 如何策划设计作品 设计的本质 所谓设计
  17. 什么是Android手机
  18. 离线部署python project 2021年4月2日更新
  19. IDEA如何从本地文件导入jar包
  20. reduce()方法

热门文章

  1. 交替性注意力_神经科学研究所发现大脑在专注与分心之间交替,保持平衡才能达到最佳状态!...
  2. 微信小程序和H5之间相互跳转的几种情况
  3. JS合并数组的几种方式?
  4. 指针 指针偏移 指针类型
  5. Matlab 点云旋转之四元数
  6. 爬虫(11) selenium(下) 行为链 登录qq空间案例
  7. 你不可不学的ELK完整搭建教程
  8. 3D角色 毛发制作 使用hair-strand-designer Part1
  9. 【毕业设计_课程设计】基于SSM的图书馆管理系统
  10. 如何让你的机器更加聪明?-知识图谱介绍与构建