由于socketio依赖boost库,所以要先编译出支持arm64的boost库
我们需要用的是1.68版的boost,因此我选择了手动下载
[官网地址] (https://www.boost.org/users/history/)
$ cd XXX/Desktop/boost_1_68_0
$ sh bootstrap.sh
$ ./b2
$ sudo ./b2 install
$ ./myBuildBoost.sh
头文件存放路径 XXX/Desktop/boost_1_68_0/boost
库文件存放路径 XXX/Desktop/boost_1_68_0/stage/lib
系统头文件存放路径 /usr/local/include
系统库文件存放路径 /usr/local/lib
我们项目里面使用的是socketio c++ 版。
$ git clone --recurse-submodules https://github.com/socketio/socket.io-client-cpp.git
该库需要依赖 websocket++、boost、rapidjson
之前已经编译好备用
直接下载的socketio库里面包含的这个库有问题 需要重新下载
官网地址 https://github.com/zaphoyd/websocketpp
替换路径 XXX/Desktop/socket.io-client-cpp/lib/websocketpp
可以直接使用socketio库里面包含的(确保下载的socketio库里的rapidjson不是空的)
存放路径 XXX//Desktop/socket.io-client-cpp/lib/rapidjson
路径 XXX/Desktop/socket.io-client-cpp/examples/iOS/SioChatDemo
cd ./boost
bash ./boost.sh
库所在路径 XXX/Desktop/boost_1_68_0/stage/lib
Build settings -> Library Search Path 添加boost在xcode存放的路径
此处填写为 "$(SRCROOT)/../../../src/lib"
Biuild Phases -> Link Binary With Libraries 里添加libc++abi.tbd libc++.1.tbd libc++.tbd
Built Settings -> Bitcode set NO
G.1 std::string("")
std::string([_messageField.text UTF8String])
参考链接 [修改参考链接](https://github.com/socketio/socket.io-client-cpp/issues/89)
G.2 LOG语句末尾处的{}拿掉
Target 选择 sioclient cmd + B
Target 选择 SioChatDemo cmd + R
生成的静态库存放的路径 XXX/Xcode/DerivedData/SioChatDemo-fveowidszgfspbeyjcophqkammbt/Build/Products/Debug-iphoneos/libsioclient.a
目前socketio不能同时支持HTTP 和 HTTPS,只能二者选其之一
下载地址 https://link.jianshu.com/?t=https%3A%2F%2Fgithub.com%2Fx2on%2FOpenSSL-for-iPhone
步骤1: cd 到OpenSSL-for-iPhone-master工程路径
步骤2:输入命令:./build-libssl.sh(需要跑一会才执行完 )
步骤3:输入命令:./build-libssl.sh –version=1.1.0c
执行完后会在demo下生成两个文件夹 如下图
注意:以下操作在所有的TARGET和PROJECT里都要进行添加
步骤1:将include文件拖入工程根目录
步骤2:将 libcrypto.a 和 libssl.a拖入工程的Frameworks
步骤3:在 Library Search Paths 中添加 $(inherited) 和 $(SRCROOT)
步骤4:在 Header Search Paths 中添加 include (直接手动输入,不要加上引用路径)
步骤5:Always Search User Path 设置为YES
在 sio_client_impl.h 里增加 #define SIO_TLS 1
步骤1:编译之前
product --> Scheme --> Edit Scheme --> Run --> Build Configuration 更改为Release 然后进行编译
步骤2:验证结果
找到编译出来的.a文件 --> Show in Finder 查看该库是否在Release-iphoneos下
Debug版本 同理。