原因可以在文件中找到:
iOS 7.0/usr/include/secure/_string.h
导致问题的代码似乎在这里:
#if __has_builtin(__builtin___strlcat_chk) && __HAS_FIXED_CHK_PROTOTYPES
#undef strlcat
#define strlcat(dest, src, len) \
__builtin___strlcat_chk (dest, src, len, __darwin_obsz (dest))
#endif
#endif /* __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 || __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090 /
#endif / __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
我不确定这是做什么的,但我猜这是在验证代码时被认为是问题。
您可以将其与同一 _string.h 文件的 iOS 6 版本进行比较,您会发现没有对 strlcat 和 strlcpy 这两个方法的引用。
还有一条带有 rdar 参考的评论:
rdar://problem/12622659
底线:这似乎是 iOS 7.0 SDK 的一个问题,由 Apple 来“修复”它。
更新:
如果您真的想提交您的应用程序,只需编辑 _string.h 文件,编辑#define __HAS_FIXED_CHK_PROTOTYPES 1
为#define __HAS_FIXED_CHK_PROTOTYPES 0