web-dev-qa-db-fra.com

«Se connecter avec Apple» permettra-t-il aux applications d'être rétrocompatibles avec iOS 12 et versions antérieures?

La mise en œuvre du nouveau Sign in With Apple fonctionnalité rend une application incompatible avec iOS 12 et inférieur, similaire à SwiftUI? Sera-t-il possible de compiler une application qui doit import AuthenticationServices sur quelque chose comme XCode 10?

7
smaccoun

Si vous souhaitez une compatibilité descendante, je suggère d'éviter d'utiliser CryptoKit pour le cryptage sha256. Vous pouvez utiliser cette extension de chaîne pour importer CommonCrypto à la place de CryptoKit.

import CommonCrypto

extension String {
   var sha256: String {
       let data = Data(utf8)
       var hash = [UInt8](repeating: 0,  count: Int(CC_SHA256_DIGEST_LENGTH))

       data.withUnsafeBytes { buffer in
           _ = CC_SHA256(buffer.baseAddress, CC_LONG(buffer.count), &hash)
       }

       return hash.map { String(format: "%02hhx", $0) }.joined()
   }
}

J'ai déjà essayé d'utiliser # si canImport (CryptoKit) pour l'importation conditionnelle et de définir - faiblesse_framework CryptoKit dans Autres indicateurs de l'éditeur de liens mais qui plante toujours pour iOS12 et au dessous de. Jusqu'à présent, la seule façon de le faire fonctionner est d'éviter d'importer CryptoKit.

0
Fede Henze