web-dev-qa-db-ja.com

「Appleでサインイン」を使用すると、iOS 12以前との下位互換性をアプリに持たせることができますか?

新しいSign in With Apple機能を実装すると、アプリはSwiftUIと同様に、iOS 12以下と互換性がなくなりますか? import AuthenticationServicesのようなものでXCode 10が必要なアプリをコンパイルすることは可能ですか?

7
smaccoun

下位互換性が必要な場合は、sha256暗号化にCryptoKitを使用しないことをお勧めします。 CryptoKitの代わりにこのストリング拡張インポートCommonCryptoを使用できます。

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()
   }
}

条件付きインポートに#if canImport(CryptoKit)を使用して、-weak_framework CryptoKitOther Linker Flagsに設定しようとしましたが、iOS12および未満。これまでのところ、それを機能させる唯一の方法は、CryptoKitのインポートを回避することです。

0
Fede Henze