1.问题现象:
使用阿里云OSS SDK来上传图片,在MacOS 10.14,10.15等平台上都能正常工作,但是在10.13版本上发现异常崩溃,奔溃日志如下:
Process: Exam_Client [24258] Path: /Applications/Exam_Client.app/Contents/MacOS/Exam_Client Identifier: com.ats.examclient Version: 4.0.1 (4.0.1) Code Type: X86-64 (Native) Parent Process: ??? [1] Responsible: Exam_Client [24258] User ID: 501 Date/Time: 2021-01-19 11:04:52.186 +0800 OS Version: Mac OS X 10.13.6 (17G14042) Report Version: 12 Bridge OS Version: 3.0 (14Y901) Anonymous UUID: 78496B48-3A4B-38AA-A4EA-34D632A3414C Sleep/Wake UUID: 9487B19A-C280-4B75-95DE-00F774AB7FE6 Time Awake Since Boot: 250000 seconds Time Since Wake: 4300 seconds System Integrity Protection: enabled Crashed Thread: 0 CrBrowserMain Dispatch queue: com.apple.main-thread Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Termination Reason: DYLD, [0x4] Symbol missing Dyld Error Message: Symbol not found: ____chkstk_darwin Referenced from: /Applications/Exam_Client.app/Contents/MacOS/Exam_Client Expected in: /usr/lib/libSystem.B.dylib
2.问题定位
通过查看程序运行日志,发现当运行到上传图片时,程序崩溃退出,判断是使用的oss的库可能不支持10.13平台
3.问题解决
重现编译阿里云oss sdk,按照阿里云OSS SDK安装文档下载sdk源代码,重点在于编译时需要指定一下库支持的平台,我们在aliyun-oss-cpp-sdk目录下找到CMakeLists.txt文件,打开并编辑它,在设置第一个project之前添加如下一行:
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.13" CACHE STRING "Minimum OS X deployment version")
然后按照编译说明 执行 CMake 和make指令即可。