9

iOS 4 以降を対象とした iOS アプリケーションで MD5 または SHA-1 を利用したいと考えています。CommonCrypto/CommonDigest.h の CC_MD5() および CC_SHA1() 関数を使用します。iOS 4.1 の iPhone と iPhone 4.0 シミュレータでは問題なく動作するようですが、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 アプリケーションで許可されていますか? 許可されている場合、その事実を文書化するための公式の参照はありますか?

4

4 に答える 4

2

CC_SHA1も同様に機能しますが、私は4.3でしばらく使用しています。

于 2012-02-13T23:35:08.467 に答える
2

path のヘッダー ファイル内:/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 はサポートされていると伝えています :-)

于 2012-12-12T08:21:04.867 に答える
1

CC_MD5iOS 4.3 で動作します。iOS 5か何かの前に文書化されていなかったに違いないと思います。

于 2012-02-13T23:25:04.223 に答える
0

関数またはクラスメソッドが利用可能かどうかを知る最善の方法は、プロジェクトの展開ターゲットを、アプリを動作させたい最小の ios バージョンに設定し、実際のデバイス (または iPhone シミュレーター) でテストすることですが、実際のデバイスだと思いますが最適なソリューションです) 展開ターゲット バージョンを実行します。

利用できない場合、アプリはクラッシュし、デバッガーは、この iOS バージョンで使用できない機能を通知します。より大きなバージョンでテストする必要があります。

実際のデバイスで動作する場合、これらの機能が利用可能です。:)

于 2012-07-28T16:32:22.707 に答える