首先看看报错:
Undefined symbols for architecture x86_64:
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()", referenced from:
__GLOBAL__sub_I_base64.mm in libH5ContainerStaticLib.a(base64.o)
"std::string::reserve(unsigned long)", referenced from:
Base64::encode64(std::string const&) in libH5ContainerStaticLib.a(base64.o)
Base64::decode64(std::string const&) in libH5ContainerStaticLib.a(base64.o)
"std::string::push_back(char)", referenced from:
aes_encrypt(std::string const&, char*) in libH5ContainerStaticLib.a(output.o)
"std::string::assign(char const*, unsigned long)", referenced from:
PaddingMsg(std::string&, std::string&) in libH5ContainerStaticLib.a(output.o)
-[output getOutput1:m_strInput1:secretKey:] in libH5ContainerStaticLib.a(output.o)
-[output getOutput4:m_strInput1:m_strInput2:m_certype:secretKey:] in libH5ContainerStaticLib.a(output.o)
以上只是部分内容,能表示错误即可。
多年前的项目,今天升级SDK遇到的坑,本文的目的不是解决问题,应为这并不是解决方式,只能说是处理方法(因为是放弃SDK的使用)。
开始我也不知道项目中的"BestPaySDK-V3.0.0" 使用的是那个第三方的SDK,爬代码知道这是翼支付集成。知道那个第三方的SDK那是好事,第一反应是去官网查看集成文档升级。我呸~~~,去 中国电信天翼开放平台 。结果让你没想到,没有iOS版本支持的SDK,只有Android的SDK。
libH5ContainerStaticLib.a 是使用 翼支付 SDK时导入的包,libH5ContainerStaticLib.a 使用的系统库 libstdc++..库,而使用高版本的Xcode10+,支持的不是libstdc++...的库,而是libc++类的库。这就尴尬了,所以最后(iOS)是放弃翼支付功能。