zoukankan      html  css  js  c++  java
  • 让ios支持openssl

    今天老板发给我一个项目,发现缺少libssl.a和libcrypto.a文件,于是上网搜了下,大概是这样子理解的。

    这好像是一个代码库的样子,要让他支持ios需要打个包,打成.a文件。

    这个笨方法完全不会用- -,我用的是外国友人的那个方法~~感谢下原文作者

    http://iosco.de/use-openssl-on-ios.html

    iOS 生成通用openssl库

    服务器PHP端定义接口,需要传递使用RSA加密的参数,为此IOS端需要引入openssl库,以便进行RSA加密、解密。本文将描述,在IOS开发过程中如何生成虚拟机、真机通用的openssl库。

    笨方法生成通用openssl库

    何为通用:使真机和模拟器均可使用生成后的openssl库

    一、下载openssl

    通过http://www.openssl.org/source/下载openssl最新源码

    二、编译openssl

    进入openssl目录,创建相应子文件夹,用于存放编译后的不同库。

    准备操作

      1. 创建目录
      1. 文本替换

    进入openssl目录下,打开 crypto/ui/ui_openssl.c 文件,搜索 static volatile sig_atomic_t intr_signal; 替换为 static volatile int intr_signal

    编译模拟器使用的openssl库

      1. 配置OpenSSL信息
      1. 更新makefile
      1. 编译

    退出makefile文件的编译,保存makefile文件。

    在终端执行如下命令:

      1. 备份文件

    当make install执行结束后,查看openssl_i386 文件夹是否已经生成相关内容。如果已经生成,可将openssl_i386目录整体拷贝走,用于备份。

    真机使用的openssl库

    真机使用的openssl库,与上述生成模拟器使用库的步骤一样,微调如下:

      1. 配置OpenSSL信息

    每次生成不同环境的openssl库,需要重新配置configure。分别在终端实现如下命令:

      1. 更新makefile文件

    三、合并不同架构openssl库

    现在已经生成模拟器及真机环境所需openssl库,需要将其合并。进入到备份相关文件的目录中,执行如下命令即可合并:

    快捷生成通用openssl库

    从上述操作流程大家可看出,真机环境下,每次编译的流程相同,无非替换-arch后面内容。再考虑模拟器环境,可以通过脚本快速生成需要编译的环境。

    GitHub上,已经有外国友人帮咱们做好了相应的脚本,我们可以愉快安静等待程序自动生成适用于真机及模拟器的openssl库。具体请见:https://github.com/x2on/OpenSSL-for-iPhone

    报错说明

    在编译过程后(make执行过后),可能会有如下报错信息,可以忽略!

    clang: warning: argument unused during compilation: ‘-pthread’
    making all in tools…
    make[1]: Nothing to be done for `all’.

  • 相关阅读:
    分析NGINX 健康检查和负载均衡机制
    基于ASIO的协程库orchid简介
    基于ASIO的协程与网络编程
    Boost.Asio技术文档
    Linux升级命令yum upgrade和yum update的区别
    yum和apt-get的用法和区别
    Linux-centos7设置静态IP地址
    Linux-各种姿势(lessvi等)打开各种类型的文件(txt/csv/xlsx等)出现不能打开(全乱码、部分乱码、二进制文件等)的问题
    Excel-vlookup(查找值,区域范围,列序号,0)如何固定住列序列号,这样即使区域范围变动也不受影响
    EXCEL-名称管理器
  • 原文地址:https://www.cnblogs.com/congliang/p/4585868.html
Copyright © 2011-2022 走看看