我希望在iOS 4及更高版本的iOS应用程序中使用MD5或SHA-1。我使用CommonCrypto / CommonDigest.h中的CC_MD5()和CC_SHA1()函数。它似乎在运行iOS 4.1和iPhone 4.0模拟器的iPhone上运行良好,但我很担心因为XCode 4.2附带的iOS 5 SDK中的函数声明如下:
extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_5_0);
extern unsigned char *CC_SHA1(const void *data, CC_LONG len, unsigned char *md)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_5_0);
这似乎表明这些功能仅适用于iOS 5及更高版本。
这些功能是否允许在iOS 4应用程序中使用,如果是这样,是否有任何官方参考来记录这一事实?
答案 0 :(得分:2)
CC_SHA1也可以使用,我已经使用4.3了一段时间了。
答案 1 :(得分:2)
在路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/include/CommonCrypto/CommonDigest.h
我们可以看到:
extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
所以,Apple现在告诉我们它是支持的: - )
答案 2 :(得分:1)
CC_MD5 在iOS 4.3中有效。我认为它必须在iOS 5之前没有记录。
答案 3 :(得分:0)
了解任何函数或类方法是否可用的最佳方法是将项目部署目标设置为您希望应用程序处理的最低ios版本,并在真实设备上进行测试(或在iPhone模拟器中进行测试但是我认为真实设备是运行部署目标版本的最佳解决方案。
如果它不可用,您的应用程序将崩溃,调试器将让您知道哪些功能在此iOS版本上不可用。您必须使用更高版本进行测试。
如果它在真实设备上运行,则可以使用这些功能。 :)