Je cherche à utiliser MD5 ou SHA-1 dans mon application iOS ciblée sur iOS 4 et plus tard. J'utilise les fonctions cc_md5 () et cc_sha1 () de CommonCrypto / CommonGigest.h. Il semble bien fonctionner sur un iPhone exécuté iOS 4.1 et dans le simulateur iPhone 4.0, mais je suis concerné car les fonctions sont déclarées comme suit dans le SDK iOS 5 fourni avec 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);
4 Réponses :
cc_md5 fonctionne em> dans iOS 4.3. Je pense que cela doit avoir été sans papiers avant iOS 5 ou quelque chose. P>
CC_SHA1 fonctionne également, je l'utilise avec 4,3 pendant un moment. P>
La meilleure façon de savoir si des fonctions ou des méthodes de classe sont disponibles est de définir la cible de déploiement de votre projet sur la version iOS la plus basse que vous souhaitez que votre application fonctionne et testez sur un périphérique réel (ou dans le simulateur iPhone mais je Pensez que le réel appareil est la meilleure solution) à travers la version cible de déploiement. P>
Si c'est indisponible, votre application s'écrasera et le débogueur vous permettra de savoir quelles fonctions ne sont pas utilisables sur cette version iOS. Vous devrez tester avec une plus grande version. P>
Si cela fonctionne sur un périphérique réel, ces fonctions sont disponibles. :) p>
Dans le fichier d'en-tête sur Chemin: Nous pouvons voir: P> /appplications/xcode.app/contents/developer/platforms/iphoneos.platform/developer/sdks/iphoneos6.0.sdk/usr/include/commmoncrypto/commondest.h
extern unsigned char *CC_MD5(const void *data, CC_LONG len, unsigned char *md)
__OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_2_0);
Avez-vous trouvé une réponse à cela?
Pas encore de réponse officielle. Je vais actuellement avec mes propres preuves empiriques qu'il fonctionne bien sur le simulateur IOS 4 et tous les appareils iOS 4 que j'ai essayés.
J'ai écrit un certain code à l'aide de ces fonctions contre le SDK 4.x uniquement pour les trouver marqués comme à partir de 5,0. Je pense que c'est probablement une erreur dans la déclaration OSX_AVAILABLE_STARTING. Certains googlings superficiels n'ont pas abouti aucune preuve de cela.