Доступны ли CC_MD5() и CC_SHA1() в iOS 4?

Я хочу использовать 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 ответа

Решение

В заголовочном файле по пути: /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 теперь говорит нам, что это поддерживается:-)

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

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

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

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

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

Другие вопросы по тегам