|
1 |
| -# Firebase Zip File Builder |
| 1 | +# Firebase Release Tools |
2 | 2 |
|
3 |
| -This project builds the Firebase iOS Zip file for distribution. |
| 3 | +This project includes Firebase release tooling including a zip builder, a |
| 4 | +Firebase Pod release updater, and a manifest reader. |
4 | 5 |
|
5 |
| -## Overview |
| 6 | +The tools are designed to fail fast with an explanation of what went wrong, so |
| 7 | +you can fix issues or dig in without having to dig too deep into the code. |
| 8 | + |
| 9 | +## Zip Builder |
6 | 10 |
|
7 | 11 | This is a small Swift Package Manager project that allows users to package a Firebase iOS Zip file. With no launch
|
8 | 12 | arguments, it will use the most recent public versions of all SDKs included in the zip file.
|
9 | 13 |
|
10 |
| -It was designed to fail fast with an explanation of what went wrong, so you can fix issues or dig in without having to dig |
11 |
| -too deep into the code. |
12 |
| - |
13 |
| -## Requirements |
| 14 | +### Requirements |
14 | 15 |
|
15 | 16 | In order to build the Zip file, you will need:
|
16 | 17 |
|
17 | 18 | - Xcode 10.1
|
18 | 19 | - CocoaPods
|
19 | 20 | - An internet connection to fetch CocoaPods
|
20 | 21 |
|
21 |
| -## Running the Tool |
| 22 | +### Running the Tool |
22 | 23 |
|
23 | 24 | You can run the tool with `swift run ZipBuilder [ARGS]` or generate an Xcode project with
|
24 | 25 | `swift package generate-xcodeproj` and run within Xcode.
|
25 | 26 |
|
26 |
| -In the near future, releases will be built via a builder server instead of on the release engineer's machine, making these |
27 |
| -instructions more of a reference to understand what's going on instead of how to build it yourself. |
28 |
| - |
29 |
| -## Launch Arguments |
| 27 | +### Launch Arguments |
30 | 28 |
|
31 | 29 | See `main.swift` and the `LaunchArgs` struct for information on specific launch arguments.
|
32 | 30 |
|
33 | 31 | You can pass in launch arguments with Xcode by clicking "ZipBuilder" beside the Run/Stop buttons, clicking "Edit
|
34 | 32 | Scheme" and adding them in the "Arguments Passed On Launch" section.
|
35 | 33 |
|
36 |
| -### Common Arguments |
| 34 | +#### Common Arguments |
37 | 35 |
|
38 | 36 | These arguments assume you're running the command from the `ZipBuilder` directory.
|
39 | 37 |
|
@@ -62,19 +60,41 @@ swift run ZipBuilder -templateDir $(pwd)/Template -updatePodRepo false \
|
62 | 60 | -customSpecRepos sso://cpdc-internal/firebase
|
63 | 61 | ```
|
64 | 62 |
|
65 |
| -## Carthage |
| 63 | +### Carthage |
66 | 64 |
|
67 | 65 | Carthage binaries can also be built at the same time as the zip file by passing in `-carthagePath
|
68 | 66 | <path_to_json_files>` as a command line argument. This directory should contain JSON files describing versions
|
69 | 67 | and download locations for each product. This will result in a folder called "carthage" at the root where the zip
|
70 | 68 | directory exists containing all the zip files and JSON files necessary for distribution.
|
71 | 69 |
|
72 |
| -## Debugging |
| 70 | +## Firebase Pod Updater |
| 71 | + |
| 72 | +Updates the Firebase pod based on the release proto. |
| 73 | + |
| 74 | +Run with the following two required options like: |
| 75 | + |
| 76 | +- -releasingPods /path/to/M57.textproto |
| 77 | +- -gitRoot /path/to/firebase-ios-sdk |
| 78 | + |
| 79 | +### Running the Tool |
| 80 | + |
| 81 | +You can run the tool with `swift run UpdateFirebasePod [ARGS]` or generate an |
| 82 | +Xcode project with `swift package generate-xcodeproj` and run within Xcode. |
| 83 | + |
| 84 | +### Launch Arguments |
| 85 | + |
| 86 | +See `main.swift` and the `LaunchArgs` struct for information on specific launch arguments. |
| 87 | + |
| 88 | +You can pass in launch arguments with Xcode by clicking "UpdateFirebasePod" |
| 89 | +beside the Run/Stop buttons, clicking "Edit |
| 90 | +Scheme" and adding them in the "Arguments Passed On Launch" section. |
| 91 | + |
| 92 | +## Development and Debugging |
73 | 93 |
|
74 | 94 | You can generate an Xcode project for the tool by running `swift package generate-xcodeproj` in this directory.
|
75 | 95 | See the above instructions for adding Launch Arguments to the Xcode build.
|
76 | 96 |
|
77 |
| -## Priorities |
| 97 | +## Development Philosophy |
78 | 98 |
|
79 | 99 | The following section describes the priorities taken while building this tool and should be followed
|
80 | 100 | for any modifications.
|
|
0 commit comments