当前位置: 首页 > 编程笔记 >

iOS制作framework静态库图文教程

高德水
2023-03-14
本文向大家介绍iOS制作framework静态库图文教程,包括了iOS制作framework静态库图文教程的使用技巧和注意事项,需要的朋友参考一下

本文实例为大家分享了iOS制作framework静态库教程 ,供大家参考,具体内容如下

环境:

硬件:macbook air

系统:OSX EI Capitan 版本:10.11.3

xcode :Version 7.2.1 (7C1002)

最近在做ios的静态库(据说framework动态库不能上传到app store).a 和framework都做过了,这里就先说framework的制作流程

1.首先在xcode下新建cocoa touch framework工程:

2.新建好工程后,往里面添加要封装的代码,并且把包含公有api的头包含到自动生成的头文件里面

或者到Build Phases下Headers里面把公有头文件放到public下

3.在Build Setting——>Linking找到Mach-O Type 把值:Dynamic Library改为:Static Library,缺少这一步生成的framework就是动态库

4.找到Edit scheme在run——>info下把build configure的值由默认值Debug 改为Release

5.选择要编译的硬件环境:分别在Generic IOS Device和 iPhone 6s Plus(选择最新的模拟器)下编译一次,编译完后就可以看到工程的products文件下的xxx.framework由红色变成黑色(注意:如果只编译了iphone 6s Plus模拟器,没有编译 Generic IOS Device ,那么xxx.framework还是不会变成黑色)

6.xxx.framework 变成黑色后,选中xxx.framework右键show in finder 就可以看到生成的framework静态库。分别有Release-iphoneos真机版和Release-iphonesimulator模拟器版,也就是说生成的版本只能分别在各自的硬件环境下使用。

7.合并真机和模拟器版framework静态库,这样就可以在模拟器和真机下使用了,不过要注意生成的静态库的大小等于真机版和模拟器版的大小的和,所以要对程序进行缩小时,可以只用其中一个版本

使用xcode自带的lipo可以合并两个版本:在终端下使用命令:lipo -create /User/...../release-iphoneos/xxx.framework/xxx /User/...../release-iphonesimular/xxx.framework/xxx -output ./xxx

其中xxx为你的库的名称,路径为生成的静态库的路径,然后把生成的xxx放到真机或者模拟器版的xxx.framework里面替换里面原有的xxx库

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • Framework静态库 既然.a是.o的集合, .framework是.a的包装, 那么说明.a就是.framework的核心 探究: 手动将.a包装成一个Framework静态库 一、准备 在OCStaticLib文件夹下准备libOCTest.a静态库 . ├── OCTest.h ├── OCTest.m ├── OCTest.o └── libOCTest.a 完整的文件目录

  • 在我的 iOS 项目中集成最新的 MIP iOS SDK 版本 1.12.61 时,我遇到了以下错误。(但适用于以前的版本 1.11.72) 如果这是MIP SDK 1.12.61二进制文件的问题以及如何解决这个问题,请告诉我。谢谢你。

  • 静态库 一、Mach-O下静态库的类型 .a .o文件合集 程序代码的集合,是共享程序代码的一种方式 .framwork 苹果针对.a的一层包装 在Mac OS/iOS平台, Framework实际上是一种打包方式, 将库的二进制文件、头文件和有关的资源文件打包到一起, 方便管理和分发. Framework 可以通俗的理解为封装了共享资源的具有层次结构的文件夹。共享资源可以是 nib文件、国际化字

  • 库是一种软件组件技术,库里面封装了数据和函数。库的使用可以使程序模块化。 Windows系统包括静态链接库(.lib文件)和动态链接库(.dll文件)。 Linux通常把库文件存放在/usr/lib或/lib目录下。 linux库文件名由:前缀lib、库名和后缀3部分组成,其中动态链接库以.so最为后缀,静态链接库通常以.a作为后缀。 在程序中使用使用静态库和动态库时,他们载入的顺序是不同的。 静

  • 我正在尝试使用chartjs来使用HTML5绘制图表。如果我通过右键点击打开HTML文件,然后在google Chrome中打开,这不起作用吗。我看到以下代码的空白屏幕: 是我在代码中做错了什么,还是我需要一个服务器(如apache)来运行页面?

  • 3. 静态库 有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库,我们在不同的程序中都会用到libc中的库函数(例如printf),也会用到libc中的变量(例如以后要讲到的environ变量)。本节介绍怎么创建这样一个库。 我们继续用stack.c的例子。为了便于理解,我们把stack.c拆成四个程序文件(虽然实际上没太大必要),把main.c改得简单一些,