SDK 加入了GMSSL编译的加密库.a文件(该版本的gmssl库中含有OpenSSL代码),项目中也引用了Openssl代码,导致了SDK中使用.a的【EC_KEY_new_by_curve_name(NID_sm2p256v1)】获取失败,因为NID_sm2p256v1找不到,可以用以下方式解决该问题
方案1:
- 1、Xcode Symbols Hidden by Default设置Yes;
- 2、Perform Single-Object Prelink 置为 Yes
- 3、把该工程需要的库都直接拖到Prelink libraries
- 4、Deployment Postprocessing置为Yes
- 5、Strip Style设置为Non-Global Symbols
方案2:经过查询Openssl在其他版本中NID_sm2p256v1 1116 变成了 1172 故修改 ec_key = EC_KEY_new_by_curve_name(1172);解决
推荐方案1,但是SDK 会变大2M左右,方案2,不确定 NID_sm2p256v1 在其他版本也是1172 仅仅作为记录 自用~