Pārlūkot izejas kodu

Fix SPM AppCheck build for watchOS (#9226)

Paul Beusterien 4 gadi atpakaļ
vecāks
revīzija
eaaa0a69d1

+ 1 - 17
.github/workflows/app_check.yml

@@ -80,25 +80,9 @@ jobs:
     # Don't run on private repo unless it is a PR.
     if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macos-11
-    steps:
-    - uses: actions/checkout@v2
-    - uses: mikehardy/buildcache-action@50738c6c77de7f34e66b870e4f8ede333b69d077
-      with:
-        cache_key: ${{ matrix.os }}
-    - name: Initialize xcodebuild
-      run: scripts/setup_spm_tests.sh
-    - name: iOS Unit Tests
-      run: scripts/third_party/travis/retry.sh ./scripts/build.sh AppCheckUnit iOS spm
-    - name: iOS Swift Unit Tests
-      run: scripts/third_party/travis/retry.sh ./scripts/build.sh AppCheckUnitSwift iOS spm
-
-  spm-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
-    runs-on: macos-11
     strategy:
       matrix:
-        target: [tvOS, macOS, catalyst]
+        target: [iOS, tvOS, macOS, catalyst, watchOS]
     steps:
     - uses: actions/checkout@v2
     - uses: mikehardy/buildcache-action@50738c6c77de7f34e66b870e4f8ede333b69d077

+ 3 - 0
FirebaseAppCheck/CHANGELOG.md

@@ -1,3 +1,6 @@
+# v8.12.0 -- M111
+- [fixed] Build failures with Swift Package Manager for watchOS. (#9191)
+
 # v8.9.0 -- M106
 - [fixed] Improved error handling logic by minimizing amount of requests that are unlikely to succeed. (#8798)
 

+ 23 - 21
FirebaseAppCheck/Tests/Unit/Swift/AppCheckAPITests.swift

@@ -160,31 +160,33 @@ final class AppCheckAPITests {
     // MARK: - DeviceCheckProvider
 
     // `DeviceCheckProvider` initializer
-    if #available(iOS 11.0, macOS 10.15, macCatalyst 13.0, tvOS 11.0, *) {
-      if let app = FirebaseApp.app(), let deviceCheckProvider = DeviceCheckProvider(app: app) {
-        // Get token
-        deviceCheckProvider.getToken { token, error in
-          if let _ /* error */ = error {
-            // ...
-          } else if let _ /* token */ = token {
-            // ...
+    #if !os(watchOS)
+      if #available(iOS 11.0, macOS 10.15, macCatalyst 13.0, tvOS 11.0, *) {
+        if let app = FirebaseApp.app(), let deviceCheckProvider = DeviceCheckProvider(app: app) {
+          // Get token
+          deviceCheckProvider.getToken { token, error in
+            if let _ /* error */ = error {
+              // ...
+            } else if let _ /* token */ = token {
+              // ...
+            }
           }
-        }
-        // Get token (async/await)
-        #if compiler(>=5.5) && canImport(_Concurrency)
-          if #available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *) {
-            // async/await is a Swift 5.5+ feature available on iOS 15+
-            Task {
-              do {
-                _ = try await deviceCheckProvider.getToken()
-              } catch {
-                // ...
+          // Get token (async/await)
+          #if compiler(>=5.5) && canImport(_Concurrency)
+            if #available(iOS 15.0, macOS 12.0, macCatalyst 15.0, tvOS 15.0, watchOS 8.0, *) {
+              // async/await is a Swift 5.5+ feature available on iOS 15+
+              Task {
+                do {
+                  _ = try await deviceCheckProvider.getToken()
+                } catch {
+                  // ...
+                }
               }
             }
-          }
-        #endif // compiler(>=5.5) && canImport(_Concurrency)
+          #endif // compiler(>=5.5) && canImport(_Concurrency)
+        }
       }
-    }
+    #endif // !os(watchOS)
   }
 }
 

+ 1 - 1
Package.swift

@@ -1138,7 +1138,7 @@ let package = Package(
               .headerSearchPath("../.."),
             ],
             linkerSettings: [
-              .linkedFramework("DeviceCheck"),
+              .linkedFramework("DeviceCheck", .when(platforms: [.iOS, .macOS, .tvOS])),
             ]),
     .testTarget(
       name: "AppCheckUnit",