Paul Beusterien 1b38a783b7 Merge remote-tracking branch 'origin/pb-merge-74' 5 gadi atpakaļ
..
CarthageJSON b928b8a873 Carthage update for 7.4.0 (#7293) 5 gadi atpakaļ
Sources 356e781974 Merge remote-tracking branch 'origin/release-7.4' into pb-merge-74 5 gadi atpakaļ
Template edcf2c04bf Move minimum zip requirement to Xcode 12.0 (#7013) 5 gadi atpakaļ
.gitignore d40c518e1a Rename ReleaseTooling (#6772) 5 gadi atpakaļ
DEVELOP.md 3a300f4df7 Review feedback 5 gadi atpakaļ
Package.swift cd3169739e Move zip-builder to ArgumentParser. (#6920) 5 gadi atpakaļ
README.md 2f28cdf8e2 Add ZipBuilder support for tvOS and macOS (#7212) 5 gadi atpakaļ
ZipBuilderV2Plan.md cd3169739e Move zip-builder to ArgumentParser. (#6920) 5 gadi atpakaļ
ZipBuilderV3Plan.md cd3169739e Move zip-builder to ArgumentParser. (#6920) 5 gadi atpakaļ

README.md

Firebase Release Tools

This project includes Firebase release tooling including a zip builder and a Firebase release candidate creation tool.

The rest of this file documents using the zip-builder tool. Information about the rest of the tools for managing Firebase releases and information about developing these tools is at DEVELOP.md

Zip Builder

The zip-builder tool generates a zip distribution of binary .xcframeworks from an input set of CocoaPods.

Requirements

In order to build the Zip file, you will need:

  • Xcode 11.0
  • CocoaPods
  • An internet connection to fetch CocoaPods

Running the Tool

You can run the tool with swift run zip-builder [ARGS] or open Package.swift to debug or run within Xcode.

Since Apple does not support linking libraries built by future Xcode versions, make sure to build with the earliest Xcode needed by any of the library clients. The Xcode command line tools must also be configured for that version. Check with xcodebuild -version.

Launch Arguments

See main.swift for information on specific launch arguments, or use swift run zip-builder --help.

You can pass in launch arguments with Xcode by clicking "zip-builder" beside the Run/Stop buttons, clicking "Edit Scheme" and adding them in the "Arguments Passed On Launch" section.

Common Arguments

Use pods <pods> to specify the CocoaPods to build.

The pods option will choose whatever pods get installed from an unversioned CocoaPods install, typically the latest versions.

To explicitly specify the CocoaPods versions, use a JSON specification :

  • --zip-pods <PATH_TO.json>

    • This is a JSON list of the pods to consolidate into a zip of binary frameworks. For example,

      [
      {
      "name": "GoogleDataTransport",
      "version" : "3.2.0"
      },
      {
      "name": "FirebaseMessaging"
      }
      ]
      

Indicates to install the version 3.2.0 of "GoogleDataTransport" and the latest version of "FirebaseMessaging". The version string is optional and can be any valid CocoaPods Podfile version specifier.

Other optional arguments:

  • --no-update-pod-repo
    • This is for speedups when pod repo update has already been run recently.
  • --minimum-ios-version <minimum-ios-version>
    • Change the minimimum iOS version from the default of 10.
  • --output-dir <output-dir>
    • The directory to copy the built Zip file. If this is not set, the path to the Zip file will be logged to the console.
  • --keep-build-artifacts
    • Keep the build artifacts.