Доступны ли CC_MD5 () и CC_SHA1 () в iOS 4? - PullRequest
9 голосов
/ 01 ноября 2011

Я хочу использовать MD5 или SHA-1 в своем приложении для iOS, предназначенном для iOS 4 и более поздних версий. Я использую функции CC_MD5 () и CC_SHA1 () из CommonCrypto / CommonDigest.h. Кажется, он отлично работает на iPhone под управлением iOS 4.1 и на симуляторе iPhone 4.0, но я обеспокоен тем, что функции в iOS 5 SDK, поставляемом с XCode 4.2, описаны следующим образом:

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, и если да, есть ли официальная ссылка на документ, подтверждающий этот факт?

Ответы [ 4 ]

2 голосов
/ 12 декабря 2012

В заголовочном файле по пути: /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 голосов
/ 14 февраля 2012

CC_SHA1 тоже работает, я уже давно использую его с 4.3.

1 голос
/ 14 февраля 2012

CC_MD5 работает в iOS 4.3.Я думаю, что это должно быть недокументировано до iOS 5 или около того.

0 голосов
/ 28 июля 2012

Лучший способ узнать, доступны ли какие-либо функции или методы класса, - установить цель развертывания проекта на минимальную версию ios, с которой вы хотите, чтобы ваше приложение работало, и провести тестирование на реальном устройстве (или в симуляторе iPhone, но я думаю, что реальное устройство - лучшее решение) работает через целевую версию развертывания.

Если оно недоступно, ваше приложение будет аварийно завершено, и отладчик сообщит вам, какие функции не используются в этой версии iOS. Вам нужно будет протестировать с большей версией.

Если это работает на реальном устройстве, эти функции доступны. :)

...