Jelajahi Sumber

[v11] Release tooling should default to building dynamic frameworks (#13261)

Nick Cooke 1 tahun lalu
induk
melakukan
77ba80bc17

+ 14 - 12
.github/workflows/zip.yml

@@ -6,6 +6,8 @@ on:
     - 'ReleaseTooling/Sources/**'
     - '.github/workflows/zip.yml'
     - 'scripts/build_non_firebase_sdks.sh'
+    - 'scripts/build_zip.sh'
+    - 'scripts/setup_quickstart_framework.sh'
     - 'Gemfile*'
     # Don't run based on any markdown only changes.
     - '!ReleaseTooling/*.md'
@@ -45,7 +47,7 @@ jobs:
          sh -x scripts/build_zip.sh release_zip_dir \
            "${{ github.event.inputs.custom_spec_repos || 'https://github.com/firebase/SpecsStaging.git' }}" \
            build-release \
-           static
+           dynamic
     - uses: actions/upload-artifact@v4
       with:
         name: Firebase-release-zip-zip
@@ -93,7 +95,7 @@ jobs:
            ${{ matrix.linking_type }}
     - uses: actions/upload-artifact@v4
       with:
-        name: ${{ matrix.linking_type == 'static' && 'Firebase-actions-dir' || 'Firebase-actions-dir-dynamic' }}
+        name: ${{ matrix.linking_type == 'dynamic' && 'Firebase-actions-dir' || 'Firebase-actions-dir-static' }}
         # Zip the entire output directory since the builder adds subdirectories we don't know the
         # name of.
         path: zip_output_dir
@@ -109,7 +111,7 @@ jobs:
     strategy:
       matrix:
         os: [macos-13, macos-14]
-        artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
+        artifact: [Firebase-actions-dir, Firebase-actions-dir-static]
         include:
           - os: macos-13
             xcode: Xcode_15.2
@@ -171,7 +173,7 @@ jobs:
     strategy:
       matrix:
         os: [macos-13, macos-14]
-        artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
+        artifact: [Firebase-actions-dir, Firebase-actions-dir-static]
         include:
           - os: macos-13
             xcode: Xcode_15.2
@@ -225,7 +227,7 @@ jobs:
     strategy:
       matrix:
         os: [macos-13, macos-14]
-        artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
+        artifact: [Firebase-actions-dir, Firebase-actions-dir-static]
         include:
           - os: macos-13
             xcode: Xcode_15.2
@@ -277,7 +279,7 @@ jobs:
     strategy:
       matrix:
         os: [macos-13, macos-14]
-        artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
+        artifact: [Firebase-actions-dir, Firebase-actions-dir-static]
         include:
           - os: macos-13
             xcode: Xcode_15.2
@@ -353,7 +355,7 @@ jobs:
       matrix:
         os: [macos-13]
         xcode: [Xcode_15.2]
-        artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
+        artifact: [Firebase-actions-dir, Firebase-actions-dir-static]
     runs-on: ${{ matrix.os }}
     steps:
     - uses: actions/checkout@v4
@@ -404,7 +406,7 @@ jobs:
     strategy:
       matrix:
         os: [macos-13, macos-14]
-        artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
+        artifact: [Firebase-actions-dir, Firebase-actions-dir-static]
         include:
           - os: macos-13
             xcode: Xcode_15.2
@@ -464,7 +466,7 @@ jobs:
     strategy:
       matrix:
         os: [macos-13, macos-14]
-        artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
+        artifact: [Firebase-actions-dir, Firebase-actions-dir-static]
         include:
           - os: macos-13
             xcode: Xcode_15.2
@@ -549,7 +551,7 @@ jobs:
     strategy:
       matrix:
         os: [macos-13, macos-14]
-        artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
+        artifact: [Firebase-actions-dir, Firebase-actions-dir-static]
         include:
           - os: macos-13
             xcode: Xcode_15.2
@@ -606,7 +608,7 @@ jobs:
     strategy:
       matrix:
         os: [macos-13, macos-14]
-        artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
+        artifact: [Firebase-actions-dir, Firebase-actions-dir-static]
         include:
           - os: macos-13
             xcode: Xcode_15.2
@@ -662,7 +664,7 @@ jobs:
     strategy:
       matrix:
         os: [macos-13, macos-14]
-        artifact: [Firebase-actions-dir, Firebase-actions-dir-dynamic]
+        artifact: [Firebase-actions-dir, Firebase-actions-dir-static]
         include:
           - os: macos-13
             xcode: Xcode_15.2

+ 2 - 0
FirebaseCore/CHANGELOG.md

@@ -13,6 +13,8 @@
   been removed. See
   https://firebase.google.com/docs/ios/swift-migration for migration
   instructions.
+- [changed] **Breaking change**: Binary release artifacts now contain dynamic
+  XCFrameworks.
 
 # Firebase 10.25.0
 - [changed] Firebase now requires at least Xcode 15.2. See

+ 2 - 3
ReleaseTooling/Sources/ZipBuilder/main.swift

@@ -61,9 +61,8 @@ struct ZipBuilderTool: ParsableCommand {
         help: ArgumentHelp("A flag for enabling or disabling versions checks for Carthage builds."))
   var carthageVersionCheck: Bool
 
-  /// A flag that indicates to build dynamic library frameworks. The default is false and static
-  /// linkage.
-  @Flag(default: false,
+  /// A flag that indicates to build dynamic library frameworks. Defaults to true.
+  @Flag(default: true,
         inversion: .prefixedNo,
         help: ArgumentHelp("A flag specifying to build dynamic library frameworks."))
   var dynamic: Bool

+ 6 - 5
ReleaseTooling/ZipBuilderV2Plan.md

@@ -56,13 +56,14 @@ installation, when `--zipPods` is specified a single zip file of frameworks will
   * ZipBuilder: -zipPods option (#4422)
   * Rename CocoaPod.swift to FirebasePods.swift (#4423)
   * Simplify Firebase pod naming (#4428)
-
-## Future Directions
-
   * Binary support for Catalyst
   * Migrate to building `.xcframeworks` instead of `.frameworks`
-  * Other Apple platforms besides iOS
-  * Swift Package Manager
+  * Supports building for iOS, macOS, tvOS, macCatalyst, and watchOS
+  * Support for building resource bundles and privacy manifests
   * Dynamic Framework support
+
+## Future Directions
+  * Support visionOS
+  * Swift Package Manager based builds
   * More option customization
   * Tests

+ 2 - 2
scripts/build_zip.sh

@@ -51,8 +51,8 @@ if [[ "$LINKING_TYPE" == "dynamic" ]]; then
 elif [[ "$LINKING_TYPE" == "static" ]]; then
   linking_mode="--no-dynamic"
 else
-  echo "Defaulting to `static`."
-  linking_mode="--no-dynamic"
+  echo "Defaulting to `dynamic`."
+  linking_mode="--dynamic"
 fi
 
 source_repo=()

+ 1 - 1
scripts/check_firestore_symbols.sh

@@ -95,7 +95,7 @@ import PackageDescription
 
 let package = Package(
     name: "TestPkg",
-    platforms: [.macOS(.v10_13)],
+    platforms: [.macOS(.v10_15)],
     dependencies: [
         .package(path: "${FIREBASE_REPO_PATH}")
     ],