我们以打包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

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

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

    最近在使用使用一个网上的Demo的时候. 出现另一令人烦恼的问题 . 就是它里面有嵌套的工程. 如下图所示. 工程里面还嵌套有一个工程. 真的是让人煞费苦心 …其实这个问题看起来并不是很难, 如果是一 ...

  2. iOS打包静态库(完整篇)

    1. 什么是库? 所谓库就是程序代码的集合,是共享程序代码的一种方式. 2. 库的分类 根据程序代码的开源情况,库可以分为两类 开源库源代码是公开的,你可以看到具体实现.比如GitHub上比较出名的第 ...

  3. ios打包静态库

    1. 什么是库? 所谓库就是程序代码的集合,是共享程序代码的一种方式. 2. 库的分类 根据程序代码的开源情况,库可以分为两类 开源库源代码是公开的,你可以看到具体实现.比如GitHub上比较出名的第 ...

  4. 如何打包静态库.framework文件 iOS

    代码调试好了开始打包成sdk,下面是将要打包的FRSDK代码(FRSDK.h暴露在外面有别人调用) 1.创建新工程(Xcode File-New-Project) 2.把下面的红色框的东西移除 3.将 ...

  5. 如何打包静态库.a文件 iOS

    代码调试好了开始打包成sdk,下面是将要打包的FRSDK代码(FRSDK.h暴露在外面有别人调用) 1.创建新工程(Xcode File-New-Project) 2.把下面的红色框的东西移除 3.将 ...

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

    一 常用脚本 1 打包脚本 脚本如下,下面附上ar 和 ranlib命令参考(命令来自于网络) ALLLIB=*.aFILE=`ls *.a`#原来的库解压重命名 for F in $FILEdo   ...

  7. iOS 构建静态库

    一..a 文件静态库打包 打开 Xcode 创建一个新的 Static Library 工程,取名 MyStaticLibrary. 创建工程完毕后,系统自动创建了一个同名类,添加一个方法用于测试. ...

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

    iOS静态库.a文件制作: 1.新建Cocoa Touch Static Library工程 新建工程 - 选择iOS-FrameWork&Libary,选择 Cocoa Touch Stat ...

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

    原文网址:http://www.jianshu.com/p/3439598ea61f 1.新建Cocoa Touch Static Library工程 新建工程 2.Xcode的参数设置 " ...

随机推荐

  1. 2019 SDN第二次上机作业

    2019 SDN第二次上机作业 1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名.交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 创 ...

  2. [BUAA软工]Alpha阶段事后分析

    设想和目标 虽然我们是从零开始的一个自定义项目,但语音Coding助手从一开始的设计与目标就很明确:加入语音接口使其能在shell端实现命令语音实现以及编辑运行脚本,设计前端编辑器并将后端shell与 ...

  3. Win10电脑桌面壁纸自动变成黑色无法更换怎么解决

    很多用户在升级到win10之后,发现在使用过程中经常会碰到一些问题,就是电脑桌面壁纸总是会自动变成黑色,而且无法设置桌面背景壁纸,这是怎么回事呢,出现这样的问题可能是因为系统不是正版,或者是电脑设置不 ...

  4. Delphi内存专题

    第一课: Windows 是多任务的操作系统, 一个任务就是一个应用(应用程序).一个应用占一个进程; 在一个进程里面, 又可以运行多个线程(所以就有了很多"多线程编程"的话题). ...

  5. python list 和 tuple详解

    list------------------------------------------------------------------------ Python内置的一种数据类型是列表:list ...

  6. java excel给单元格增加批注(包含SXSSF)

    package javatest; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi ...

  7. word/wps 制作下拉列表

    准备: 1.数据页 2.项目名称sheet 3.问题类型sheet 开始制作: 数据 --- 有效性 --- 允许“序列” --- 来源 -- 其他sheet页“单元格”选择范围 回车.确定 即可

  8. EasyNVR摄像机网页直播中,推流组件EasyRTMP推送RTMP扩展支持HEVC(H.265)的方案

    众所周知,RTMP标准协议实际是不支持HEVC(H.265)编码格式的,同样,现行的H5标准里面,也没有对H.265的描述,所以,在很大程度上,H5网页浏览器是无法接入HEVC(H.265)的,但是, ...

  9. KMP算法JS实现

    参考阮一峰的<字符串匹配的KMP算法>,用JS实现一版,备忘~ // 主串 let str1 = 'BBC ABCDAB ABCDABCDABDEDC'; // 模式串 let str2 ...

  10. web自动化测试笔记(二)

    如何使用selenium工具 上章节介绍了搭建web自动化的环境,这个章节介绍如何使用selenium写自动化脚本. 1.selenium selenium是一个用于web应用程序的测试工具.它可以帮 ...