我建立了一个应用程序,在IOS 7.1上运行良好,但当安装在IOS 7.0上时,它会崩溃,并出现以下日志:
dyld: lazy symbol binding failed: Symbol not found: _OSAtomicDecrement32
Referenced from: /var/mobile/Applications/80FCE91D-EAB5-4321-A157-4A05EA40C07C/MyAPP.app/MyAPP
Expected in: /usr/lib/libSystem.B.dylib
Aug 16 14:42:00 LAWR3NCEde-iPhone MyAPP[14925] <Notice>: dyld: Symbol not found: _OSAtomicDecrement32
Referenced from: /var/mobile/Applications/80FCE91D-EAB5-4321-A157-4A05EA40C07C/MyAPP.app/MyAPP
Expected in: /usr/lib/libSystem.B.dylib
应用程序使用Facebook SDK和MSDynamicsViewController(它使用UIKit)。知道这条信息是什么意思吗?这个OSAtomicDecrement32是什么?
OSAtomicDecrement32在osatomich .h中。在多线程程序中实现锁或保留计数时非常有用。
它被标记为只能在7.1及以上版本(在iPhone上)可用,这就是为什么你会崩溃。
__OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_7_1)
int32_t OSAtomicDecrement32( volatile int32_t *__theValue );