一、错误信息
[…]/SandboxProject_62RC3/ios/Pods/Headers/Private/whr-hoye/hoye/portability/Time.h:51:17: Typedef redefinition with different types (‘uint8_t’ (aka ‘unsigned char’) vs ‘enum clockid_t’)
[...]/SandboxProject_62RC3/ios/Pods/Headers/Private/whr-hoye/hoye/portability/Time.h:51:17: Typedef redefinition with different types ('uint8_t' (aka 'unsigned char') vs 'enum clockid_t')
二、背景信息
当更新了xcode以后,运行ios项目出现此错误。
三、处理办法:
我将__IPHONE_10_0改为__IPHONE_12_0(因为我现在指定的目标iOS版本是11),如果你的目标是macOS,可以将MAC_OS_X_VERSION_10_12改为MAC_OS_X_VERSION_10_15。
如下图所示,可以直接复制然后替换。
// OSX is a pain. The XCode 8 SDK always declares clock_gettime
// even if the target OS version doesn't support it, so you get
// an error at runtime because it can't resolve the symbol. We
// solve that by pretending we have it here in the header and
// then enable our implementation on the source side so that
// gets linked in instead.
#if __MACH__ && \
(MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12 || \
__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0)
#ifdef FOLLY_HAVE_CLOCK_GETTIME
#undef FOLLY_HAVE_CLOCK_GETTIME
#endif
#define FOLLY_HAVE_CLOCK_GETTIME 1
#define FOLLY_FORCE_CLOCK_GETTIME_DEFINITION 1
#endif