本文实例为大家分享了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)来运行页面?
1、打开代码配置文件config.php 开启伪静态(false改为true) 2、后台开启pathinfo模式 3、环境配置 Nginx配置 找到nginx的配置文件Nginx.conf添加伪静态配置代码(以下代码) location / { if \(!-e $request\_filename\) { rewrite ^\(.\*\)$ /index.php?s=$1 las