iOS 打包静态库.a文件(真机版 + 虚拟机)

我们以打包IOS开发中封装的高地地图基础功能包 GDMap为例。

1>我们需要准备好需要打包的GDMap

2>接下来我们开始新建一个工程文件取名GDMap

3>删掉无用自动生成的.h 和.m 文件,把准备好的GDMap拖入工程中,注意文件放在一级目录下。

4>接下来我们选择出来需要暴露出来的头文件.h

我选择暴露出所有的头文件如下图

5>接下来我们配置下工程文件,修改

Product->Scheme-> Edit Scheme下 为 Release

6>配置完之后我们就可以选择真机进行运行在运行后,再虚拟机运行一次,我们找到生成的.a文件右键选择show in finder就可以了。

7>合并两个.a 文件,使其能够同时在模拟器及真机上使用

lipo -create 要合的两个文件1路径 要合的两个文件2路径 -output .../Desktop/GDMap.a(生成路径)

注意:

选择 编译的设备,iOS Device 编译出来的是真机的,选择  模拟器 编译出来的是模拟器版本

如果使用别人的,不知道他是通过什么方式编译来的。可以通过 终端命令行来查看

lipo -info  要查看的文件的路径(直接拖过来)

armv7 arm64 真机

i386 模拟器

使用的时候:

添加静态库.a文件到工程中去,同时添加.h文件

通过查看.h文件来使用这个静态库

出现如下静态库错误:使用的静态库的架构不对

Undefined symbols for architecture i386:

"_OBJC_CLASS_$_StaticLibrary", referenced from:

objc-class-ref in ViewController.o

ld: symbol(s) not found for architecture i386

clang: error: linker command failed with exit code 1 (use -v to see invocation)

错误:

xcrun: error: active developer path ("/Users/XJW/Desktop/Xcode.app/Contents/Developer") does not exist, use `xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools (or see `man xcode-select`)

解决方法:

sudo xcode-select --switch /Applications/Xcode.app

时间: 2024-08-04 05:11:14

iOS 打包静态库.a文件(真机版 + 虚拟机)的相关文章

iOS中静态库-.a文件生成和使用

最近在使用使用一个网上的Demo的时候. 出现另一令人烦恼的问题 . 就是它里面有嵌套的工程. 如下图所示. 工程里面还嵌套有一个工程. 真的是让人煞费苦心 …其实这个问题看起来并不是很难, 如果是一般的工程的话, 解决方法有两种: 我可把嵌套工程里面的文件拖拽出来. 修改一些属性什么的应该可以使用了 还有一种方法就是我把嵌套里面的工程整个生成一个静态库文件.把我需要使用的文件的.h暴露出来使用.但是这个工程比较奇葩. 他里面是c++de一些文件. 如果直接拖拽的话会有各种引用文件错误的问题.

打包静态库.a文件及bundle资源包的创建及使用

之前打包静态库好多步骤记不太清楚了,发现网上给的资料各种各样,好多坑不清楚,而且不太全面,所以自己整理了下资料,供大家参考,细节不足之处还望指正. 设置 Build Setting 中的 COMBINE_HIDPI_IMAGES 为 NO,否则 Bundle 中的图片就是 tiff 格式了. lipo -create /Users/apple/Desktop/~.a /Users/apple/Desktop~.a -output /Users/apple/Desktop/~.a 编译生成 Bun

iOS开发,如何打包静态库.a文件

1.需求 我们在开发iOS的工作中可能会自己开发一些.a静态库或者打包一下别人的第三方类库包装成自己的.a文件.有时候我们引入一些C++编译的第三方文件时可能会出现编译的错误,但是我们如果打包成.a静态库时就很少会出现OC与C++混编的错误,原因很简单.a静态库文件是编译好的二进制文件,二进制文件与二进制文件互相混编当然没有什么问题.好那么接下来我们开始学习打包吧! 2.实例 接下来我们就以打包IOS开发中常用的网络请求库AFNetworking为实例. 1>我们需要准备好需要打包的AFNetw

打包静态库 .a 文件

新手学到知识 总是 高兴一下!我也同时知道 很多的不足之处.但是知道比不知道 强一些.还有很多需要学习 1. 创建 2. 起名字 4. 添加  需要 打包到静态库的代码 5.  需要将.h 文件 显示出来 6. 选择静态库  和 真机 command +B 静态库 颜色变为黑色 进行检验

打包静态库.a文件的方法(ar,ranlib,nm命令介绍)

一 常用脚本 1 打包脚本 脚本如下,下面附上ar 和 ranlib命令参考(命令来自于网络) ALLLIB=*.aFILE=`ls *.a`#原来的库解压重命名 for F in $FILEdo        ar x $F        OBJ=`ar t $F`        for O in $OBJ        do                mv $O ${F}_${O}        donedone #ar c 创建一个库,ar r 插入文件.ar s ==ranlib 向

iOS中静态库的制作——使用创建静态库项目的方式创建静态库

最近公司要求写SDK,我就想把它弄成静态库的方式 我的理解:所谓静态库,就是把所有的.m文件打包成一个.a文件,这样使分享代码的时候更加简洁,重要的是别人也不会看到你.m文件中的傻B代码了 环境是Xcode6.2 iOS8.2 首先,创建一个静态库项目 删掉Xcode自动创建的同名文件,然后导入你需要做成静态库的文件 在这里我导入一个简单的输出字符串的文件 然后选择运行的设备进行编译,这里我有不理解的地方:在Xcode6.2中,当我首先选择模拟器,然后编译文件的时候,.a文件依然是红色的,说明静

iOS如何重新打包静态库,使得模拟器和真机都可以使用(以ZBarSDK为例)

ZBarSDK下载地址:https://github.com/bmorton/ZBarSDK http://zbar.sourceforge.net/iphone/index.html 1.创建工程 导入ZBar的SDK文件.即把ZBarSDK的目录拉入项目,然后选中copy选项 2.添加framework 3.添加代码 #import "ZBarSDK.h" #import "QRCodeGenerator.h" @interface yxpViewControl

iOS静态库.a文件制作和导入使用

iOS静态库.a文件制作: 1.新建Cocoa Touch Static Library工程 新建工程 - 选择iOS-FrameWork&Libary,选择 Cocoa Touch Static Library工程. 2.Xcode的参数设置 "Build Active Architecture Only" 设置为"NO" "IOS Deployment Target" 设置为 "IOS 7.0" ,表示支持IOS7

【转】IOS静态库a文件制作流程

原文网址:http://www.jianshu.com/p/3439598ea61f 1.新建Cocoa Touch Static Library工程 新建工程 2.Xcode的参数设置 "Build Active Architecture Only" 设置为"NO" "IOS Deployment Target" 设置为 "IOS 7.0" ,表示支持IOS7.0以上系统版本的编译 Build Active Architec