文档章节

编译 iOS 平台使用的openssl库

诚实的钟
 诚实的钟
发布于 2016/11/13 11:58
字数 485
阅读 194
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

概要说明

openssl 是一个 c 语言库。

openssl 官方地址:https://www.openssl.org

openssl 源码地址:https://github.com/openssl/openssl

 

下载源码,然后编译源码,网上资料比较多,自己测试下载最新源码后发现会报一些错误。

自己不想费时间解决,直接找到了下面这种方式:

https://github.com/x2on/OpenSSL-for-iPhone

直接看作者说明,编译作者试过支持的版本就行。自己测试编译版本是 1.0.2i ,编译成功了。

 

另外,直接编译最新版1.1.0c,终端执行报错,报的错和自己手动编译源码是一样的错误,估计有些配置不正确。

 

1 编译静态库

下面针对 https://github.com/x2on/OpenSSL-for-iPhone 这种方式,要注意的地方做些整理:

关键步骤说明:

  1. 下载作者源码库,重点参看脚本 build-libssl.sh
  2. 打开脚本,配置参数,里面有DEFAULTVERSION:默认openssl版本、IOS_MIN_SDK_VERSION:iOS支持最小版本、ARCHS:CPU架构(只需要编译iOS平台可以指定为:"x86_64 arm64 armv7s armv7",i386 是32位模拟器,可以不考虑)、还有一些其他参数可以参考。
  3. 脚本执行完毕后,会依次生成对应架构的静态库.a文件。需要使用 lipo 命令将多个.a 文件合并成一个文件,方便使用。

补充:lipo合并.a文件的命令参考:

lipo -create Release-iphoneos/libzbar.a Release-iphonesimulator/libzbar.a -o libzbar.a

 

2 加入openssl库到xcode项目

将编译好的 include目录下的头文件和合并后的.a 文件加入到工程中。(类似大多数第三方库一样)

如果编译报错,找不到 <openssl/opensslconf.h> 文件,需要在xcode 工程配置下设置 Head Search选项中头文件的搜索路径,改一下即可。

 

进阶:

对于openssl里面的常见加密算法的加解密 API 的使用,还有待进一步学习和研究

 

 

 

 

 

© 著作权归作者所有

诚实的钟
粉丝 1
博文 15
码字总数 12701
作品 0
闵行
私信 提问
加载中

评论(0)

使用 Openssl 验证自签名证书

iOS的 security framework 框架前面已经介绍。这个框架提供有限的功能,使用它能做到的,比你想象的要少。笔者一直想找一个 iOS 下比较好的功能全面的安全算法库,结果却一无所获。不知道谁能...

鉴客
2012/01/09
4.1K
0
编译-POCO C++支持iOS平台的静态库

一、POCO C++ library简介 POCO C++ library是一个C++编写的跨平台库,主要实现网络连接、数据库管理以及服务器,适用于跨平台、嵌入式。 二、为Xcode编译POCO C++ 静态库 1、确定需要编译的...

shifang07
2019/10/15
0
0
在 iOS 中使用 OpenSSL 库

在你的 iOS App中 使用 OpenSSL 库 ——译自x2on的“Tutorial: iPhone App with compiled OpenSSL 1.0.0a Library” 原文地址:http://www.x2on.de/2010/07/13/tutorial-iphone-app-with-co......

鉴客
2012/01/09
7.6K
3
[经验分享]Windows系统下生成IOS证书

我使用ApiCloud开发APP,开发后需要生成IOS的证书才能在项目开发控制台中进行编译,于是我在网上大海捞针似的寻找办法。 官方文档提供了使用苹果系统下生成IOS证书的步骤,对于我这个没有ima...

osc_od08lbhl
2018/07/14
2
0
Swift编写的EOS区块链开源框架SwiftyEOS

SwiftyEOS是一个用于与EOS交互的开源框架,用Swift编写。可以在iOS和macOS上使用。 特点: EOS密钥对生成 私钥导入 签名哈希 基本的RPC API(链/历史)可查询客户端 交易(EOS token 转账) ...

笔阁
2018/11/28
331
0

没有更多内容

加载失败,请刷新页面

加载更多

Flutter 使用Navigator进行局部跳转页面

老孟导读:Navigator组件使用的频率不是很高,但在一些场景下非常适用,比如局部表单多页填写、底部导航一直存在,每个tab各自导航场景。 Navigator 是管理路由的控件,通常情况下直接使用N...

老孟Flutter
58分钟前
28
0
使用site-maven-plugin在github上搭建公有仓库

简介 Maven是我们在开发java程序中经常使用的构建工具,在团队合作开发过程中,如果我们想要将自己写好的jar包共享给别人使用,通常需要自己搭建maven仓库,然后将写好的jar包上传到maven仓库...

flydean
今天
25
1
Python笔记:爬取各国疫情仙去人数数据制作南丁格尔玫瑰图

我凌晨用Python爬虫实时从网上爬取各国在疫情中仙去人数的数据,然后仿人民日报制作成“南丁格尔玫瑰图” 英国37048;意大利32877;西班牙27117都对得上; 但美国、法国、巴西的跟百度大数据...

tengyulong
今天
26
0
PHP Session的用法

在 PHP 中,Session 是一种服务器端的机制,服务器使用一种散列表的结构(类似于 JSON)来保存信息。相比于保存在客户端的 Cookie,Session 将用户交互信息保存在了服务器端,使得同一个客户...

linuxprobe2020
今天
37
0
webpack.03-打包js同时生成html页面

在空文件夹初始化:CMD npm init -y cnpm install -D webpack webpack-cli 文件结构 src(文件夹)--->test.js console.log('hello webpack') src(文件夹)--->index.html <html> ......

_qq507570355
今天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部