Rewrite AppCheckCore in Swift (#111)

Signed-off-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com>
Co-authored-by: Nick Cooke <nickcooke@google.com>
This commit is contained in:
authored and GitHub committed 2026-09-23 18:22:08 -04:00
1 parent 97f7d74dd0
commit c7eb17e554
215 files changed
+11244 -15058

No files matched your search

@@ -0,0 +1,41 @@
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import Foundation
@objc(GACDeviceCheckTokenGenerator)
public protocol AppCheckCoreDeviceCheckTokenGenerator: NSObjectProtocol {
@objc var isSupported: Bool { get }
@objc(generateTokenWithCompletionHandler:)
func generateToken(completionHandler: @escaping @Sendable (Data?, Error?) -> Void)
}
extension AppCheckCoreDeviceCheckTokenGenerator {
func generateTokenAsync() async throws -> Data {
try await withSafeCheckedThrowingContinuation { continuation in
self.generateToken { token, error in
if let error = error {
continuation.resume(throwing: error)
} else if let token = token {
continuation.resume(returning: token)
} else {
continuation
.resume(throwing: AppCheckCoreErrorUtil
.error(withFailureReason: "No token and no error."))
}
}
}
}
}