fastlane 2.61.0.beta.20171006010004 → 2.61.0.beta.20171007010004
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -161
- data/cert/README.md +7 -166
- data/deliver/README.md +7 -287
- data/deliver/lib/deliver/runner.rb +1 -1
- data/fastlane/README.md +7 -209
- data/fastlane/lib/fastlane/actions/cocoapods.rb +27 -8
- data/fastlane/lib/fastlane/actions/docs/assets/FrameitGit.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/MacExample.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/PEMRecording.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/PilotTextTransparent.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/PilotTextTransparentSmall.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/PilotTextWhite.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/PilotTransparent.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/QuickLookScreenshot.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/ScreenshotsBig.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/ScreenshotsOverview.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/SignErrors.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/UDIDPrint.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/frameit.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/github_repo.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/htmlPage.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/htmlPagePreview.jpg +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/htmlPagePreviewFade.jpg +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/match.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/match_appstore_small.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/match_init.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/match_nuke.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/pem.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/pilot.ai +5377 -16
- data/fastlane/lib/fastlane/actions/docs/assets/precheck.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/precheck.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/produce.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/running-screengrab.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/scan.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/scanHTML.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/scanHTMLFailing.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/scanScreenshot.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/screengrab.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/sigh.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/sighRecording.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/slack.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/snapshot.gif +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/snapshot.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/supply.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/assets/testSummary.png +0 -0
- data/fastlane/lib/fastlane/actions/docs/cert.md +2 -4
- data/fastlane/lib/fastlane/actions/docs/deliver.md +1 -3
- data/fastlane/lib/fastlane/actions/docs/frameit.md +215 -0
- data/fastlane/lib/fastlane/actions/docs/gym.md +17 -17
- data/fastlane/lib/fastlane/actions/docs/match.md +352 -0
- data/fastlane/lib/fastlane/actions/docs/pem.md +120 -0
- data/fastlane/lib/fastlane/actions/docs/pilot.md +218 -0
- data/fastlane/lib/fastlane/actions/docs/precheck.md +97 -0
- data/fastlane/lib/fastlane/actions/docs/produce.md +227 -0
- data/fastlane/lib/fastlane/actions/docs/scan.md +145 -0
- data/fastlane/lib/fastlane/actions/docs/screengrab.md +145 -0
- data/fastlane/lib/fastlane/actions/docs/sigh.md +187 -0
- data/fastlane/lib/fastlane/actions/docs/snapshot.md +333 -0
- data/fastlane/lib/fastlane/actions/docs/supply.md +144 -0
- data/fastlane/lib/fastlane/plugins/plugin_manager.rb +5 -0
- data/fastlane/lib/fastlane/setup/setup_ios.rb +2 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/frameit/README.md +7 -290
- data/gym/README.md +7 -300
- data/match/README.md +7 -420
- data/match/lib/match/generator.rb +1 -0
- data/match/lib/match/git_helper.rb +31 -12
- data/match/lib/match/runner.rb +11 -6
- data/pem/README.md +7 -188
- data/pilot/README.md +7 -285
- data/pilot/lib/pilot/build_manager.rb +13 -10
- data/precheck/README.md +7 -171
- data/produce/README.md +7 -294
- data/scan/README.md +7 -219
- data/screengrab/README.md +7 -192
- data/sigh/README.md +7 -262
- data/snapshot/README.md +7 -408
- data/snapshot/lib/snapshot/reset_simulators.rb +4 -2
- data/spaceship/lib/spaceship/test_flight/build.rb +1 -1
- data/supply/README.md +7 -219
- metadata +52 -2
data/match/lib/match/runner.rb
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
module Match
|
2
2
|
class Runner
|
3
|
-
attr_accessor :
|
3
|
+
attr_accessor :files_to_commmit
|
4
4
|
attr_accessor :spaceship
|
5
5
|
|
6
6
|
def run(params)
|
7
|
+
self.files_to_commmit = []
|
8
|
+
|
7
9
|
FastlaneCore::PrintTable.print_values(config: params,
|
8
10
|
hide_keys: [:workspace],
|
9
11
|
title: "Summary for match #{Fastlane::VERSION}")
|
@@ -50,9 +52,9 @@ module Match
|
|
50
52
|
end
|
51
53
|
|
52
54
|
# Done
|
53
|
-
if self.
|
55
|
+
if self.files_to_commmit.count > 0 and !params[:readonly]
|
54
56
|
message = GitHelper.generate_commit_message(params)
|
55
|
-
GitHelper.commit_changes(params[:workspace], message, params[:git_url], params[:git_branch])
|
57
|
+
GitHelper.commit_changes(params[:workspace], message, params[:git_url], params[:git_branch], self.files_to_commmit)
|
56
58
|
end
|
57
59
|
|
58
60
|
# Print a summary table for each app_identifier
|
@@ -81,7 +83,10 @@ module Match
|
|
81
83
|
UI.important "Couldn't find a valid code signing identity in the git repo for #{cert_type}... creating one for you now"
|
82
84
|
UI.crash!("No code signing identity found and can not create a new one because you enabled `readonly`") if params[:readonly]
|
83
85
|
cert_path = Generator.generate_certificate(params, cert_type)
|
84
|
-
|
86
|
+
private_key_path = cert_path.gsub(".cer", ".p12")
|
87
|
+
|
88
|
+
self.files_to_commmit << cert_path
|
89
|
+
self.files_to_commmit << private_key_path
|
85
90
|
else
|
86
91
|
cert_path = certs.last
|
87
92
|
UI.message "Installing certificate..."
|
@@ -144,7 +149,7 @@ module Match
|
|
144
149
|
prov_type: prov_type,
|
145
150
|
certificate_id: certificate_id,
|
146
151
|
app_identifier: app_identifier)
|
147
|
-
self.
|
152
|
+
self.files_to_commmit << profile
|
148
153
|
end
|
149
154
|
|
150
155
|
installed_profile = FastlaneCore::ProvisioningProfile.install(profile)
|
@@ -155,7 +160,7 @@ module Match
|
|
155
160
|
if spaceship && !spaceship.profile_exists(username: params[:username], uuid: uuid)
|
156
161
|
# This profile is invalid, let's remove the local file and generate a new one
|
157
162
|
File.delete(profile)
|
158
|
-
|
163
|
+
# This method will be called again, no need to modify `files_to_commmit`
|
159
164
|
return nil
|
160
165
|
end
|
161
166
|
|
data/pem/README.md
CHANGED
@@ -1,198 +1,17 @@
|
|
1
1
|
<h3 align="center">
|
2
|
-
<a href="https://
|
3
|
-
<img src="
|
2
|
+
<a href="https://docs.fastlane.tools/actions/pem">
|
3
|
+
<img src="https://raw.githubusercontent.com/fastlane/fastlane/master/fastlane/assets/fastlane.png" width="100" />
|
4
4
|
<br />
|
5
5
|
fastlane
|
6
6
|
</a>
|
7
7
|
</h3>
|
8
|
-
<p align="center">
|
9
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> •
|
10
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> •
|
11
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/frameit">frameit</a> •
|
12
|
-
<b>pem</b> •
|
13
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> •
|
14
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> •
|
15
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> •
|
16
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> •
|
17
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/pilot">pilot</a> •
|
18
|
-
<a href="https://github.com/fastlane/boarding">boarding</a> •
|
19
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> •
|
20
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> •
|
21
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> •
|
22
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
|
23
|
-
</p>
|
24
8
|
|
25
|
-
|
9
|
+
------
|
26
10
|
|
27
11
|
<p align="center">
|
28
|
-
<
|
29
|
-
|
30
|
-
|
31
|
-
pem
|
32
|
-
============
|
33
|
-
|
34
|
-
[![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
|
35
|
-
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/pem/LICENSE)
|
36
|
-
|
37
|
-
###### Automatically generate and renew your push notification profiles
|
38
|
-
|
39
|
-
Tired of manually creating and maintaining your push notification profiles for your iOS apps? Tired of generating a `pem` file for your server?
|
40
|
-
|
41
|
-
`pem` does all that for you, just by simply running `pem`.
|
42
|
-
|
43
|
-
`pem` creates new .pem, .cer, and .p12 files to be uploaded to your push server if a valid push notification profile is needed. `pem` does not cover uploading the file to your server.
|
44
|
-
|
45
|
-
To automate iOS Provisioning profiles you can use [match](https://github.com/fastlane/fastlane/tree/master/match).
|
46
|
-
|
47
|
-
-------
|
48
|
-
|
49
|
-
<p align="center">
|
50
|
-
<a href="#features">Features</a> •
|
51
|
-
<a href="#installation">Installation</a> •
|
52
|
-
<a href="#usage">Usage</a> •
|
53
|
-
<a href="#how-does-it-work">How does it work?</a> •
|
54
|
-
<a href="#tips">Tips</a> •
|
55
|
-
<a href="#need-help">Need help?</a>
|
12
|
+
<a href="https://docs.fastlane.tools/actions/pem">
|
13
|
+
<img src="https://raw.githubusercontent.com/fastlane/fastlane/master/pem/assets/pem.png" height="110">
|
14
|
+
</a>
|
56
15
|
</p>
|
57
16
|
|
58
|
-
|
59
|
-
|
60
|
-
<h5 align="center"><code>pem</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
|
61
|
-
|
62
|
-
# Features
|
63
|
-
Well, it's actually just one: Generate the ```pem``` file for your server.
|
64
|
-
|
65
|
-
Check out this gif:
|
66
|
-
|
67
|
-
![assets/PEMRecording.gif](assets/PEMRecording.gif)
|
68
|
-
|
69
|
-
# Installation
|
70
|
-
sudo gem install fastlane
|
71
|
-
|
72
|
-
Make sure, you have the latest version of the Xcode command line tools installed:
|
73
|
-
|
74
|
-
xcode-select --install
|
75
|
-
|
76
|
-
# Usage
|
77
|
-
|
78
|
-
fastlane pem
|
79
|
-
|
80
|
-
Yes, that's the whole command!
|
81
|
-
|
82
|
-
This does the following:
|
83
|
-
|
84
|
-
- Create a new signing request
|
85
|
-
- Create a new push certification
|
86
|
-
- Downloads the certificate
|
87
|
-
- Generates a new ```.pem``` file in the current working directory, which you can upload to your server
|
88
|
-
|
89
|
-
Note that ```pem``` will never revoke your existing certificates. `pem` can't download any of your existing push certificates, as the private key is only available on the machine it was created on.
|
90
|
-
|
91
|
-
If you already have a push certificate enabled, which is active for at least 30 more days, `pem` will not create a new certificate. If you still want to create one, use the `force`:
|
92
|
-
|
93
|
-
fastlane pem --force
|
94
|
-
|
95
|
-
You can pass parameters like this:
|
96
|
-
|
97
|
-
fastlane pem -a com.krausefx.app -u username
|
98
|
-
|
99
|
-
If you want to generate a development certificate instead:
|
100
|
-
|
101
|
-
fastlane pem --development
|
102
|
-
|
103
|
-
Set a password for your `p12` file:
|
104
|
-
|
105
|
-
fastlane pem -p "MyPass"
|
106
|
-
|
107
|
-
You can specify a name for the output file:
|
108
|
-
|
109
|
-
fastlane pem -o my.pem
|
110
|
-
|
111
|
-
To get a list of available options run:
|
112
|
-
|
113
|
-
fastlane pem --help
|
114
|
-
|
115
|
-
|
116
|
-
### Note about empty `p12` passwords and Keychain Access.app
|
117
|
-
|
118
|
-
`pem` will produce a valid `p12` without specifying a password, or using the empty-string as the password.
|
119
|
-
While the file is valid, the Mac's Keychain Access will not allow you to open the file without specifying a passphrase.
|
120
|
-
|
121
|
-
Instead, you may verify the file is valid using OpenSSL:
|
122
|
-
|
123
|
-
openssl pkcs12 -info -in my.p12
|
124
|
-
|
125
|
-
If you need the `p12` in your keychain, perhaps to test push with an app like [Knuff](https://github.com/KnuffApp/Knuff) or [Pusher](https://github.com/noodlewerk/NWPusher), you can use `openssl` to export the `p12` to `pem` and back to `p12`:
|
126
|
-
|
127
|
-
% openssl pkcs12 -in my.p12 -out my.pem
|
128
|
-
Enter Import Password:
|
129
|
-
<hit enter: the p12 has no password>
|
130
|
-
MAC verified OK
|
131
|
-
Enter PEM pass phrase:
|
132
|
-
<enter a temporary password to encrypt the pem file>
|
133
|
-
|
134
|
-
% openssl pkcs12 -export -in my.pem -out my-with-passphrase.p12
|
135
|
-
Enter pass phrase for temp.pem:
|
136
|
-
<enter the temporary password to decrypt the pem file>
|
137
|
-
|
138
|
-
Enter Export Password:
|
139
|
-
<enter a password for encrypting the new p12 file>
|
140
|
-
|
141
|
-
##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
|
142
|
-
|
143
|
-
## Environment Variables
|
144
|
-
|
145
|
-
Run `fastlane pem --help` to get a list of available environment variables.
|
146
|
-
|
147
|
-
# How does it work?
|
148
|
-
|
149
|
-
`pem` uses [spaceship](https://spaceship.airforce) to communicate with the Apple Developer Portal to request a new push certificate for you.
|
150
|
-
|
151
|
-
## How is my password stored?
|
152
|
-
```pem``` uses the [password manager](https://github.com/fastlane/fastlane/tree/master/credentials_manager) from `fastlane`. Take a look the [CredentialsManager README](https://github.com/fastlane/fastlane/tree/master/credentials_manager) for more information.
|
153
|
-
|
154
|
-
# Tips
|
155
|
-
|
156
|
-
## [`fastlane`](https://fastlane.tools) Toolchain
|
157
|
-
|
158
|
-
- [`fastlane`](https://fastlane.tools): The easiest way to automate beta deployments and releases for your iOS and Android apps
|
159
|
-
- [`deliver`](https://github.com/fastlane/fastlane/tree/master/deliver): Upload screenshots, metadata and your app to the App Store
|
160
|
-
- [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot): Automate taking localized screenshots of your iOS app on every device
|
161
|
-
- [`frameit`](https://github.com/fastlane/fastlane/tree/master/frameit): Quickly put your screenshots into the right device frames
|
162
|
-
- [`sigh`](https://github.com/fastlane/fastlane/tree/master/sigh): Because you would rather spend your time building stuff than fighting provisioning
|
163
|
-
- [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
|
164
|
-
- [`cert`](https://github.com/fastlane/fastlane/tree/master/cert): Automatically create and maintain iOS code signing certificates
|
165
|
-
- [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
|
166
|
-
- [`pilot`](https://github.com/fastlane/fastlane/tree/master/pilot): The best way to manage your TestFlight testers and builds from your terminal
|
167
|
-
- [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
|
168
|
-
- [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS app has never been easier
|
169
|
-
- [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
|
170
|
-
- [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
|
171
|
-
- [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
|
172
|
-
|
173
|
-
##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
|
174
|
-
|
175
|
-
## Use the 'Provisioning Quicklook plugin'
|
176
|
-
Download and install the [Provisioning Plugin](https://github.com/chockenberry/Provisioning).
|
177
|
-
|
178
|
-
It will show you the ```pem``` files like this:
|
179
|
-
![assets/QuickLookScreenshot.png](assets/QuickLookScreenshot.png)
|
180
|
-
|
181
|
-
|
182
|
-
# Need help?
|
183
|
-
|
184
|
-
Before submitting a new GitHub issue, please make sure to
|
185
|
-
|
186
|
-
- Check out [docs.fastlane.tools](https://docs.fastlane.tools)
|
187
|
-
- Check out the README pages on [this repo](https://github.com/fastlane/fastlane)
|
188
|
-
- Search for [existing GitHub issues](https://github.com/fastlane/fastlane/issues)
|
189
|
-
|
190
|
-
If the above doesn't help, please [submit an issue](https://github.com/fastlane/fastlane/issues) on GitHub and provide information about your setup, in particular the output of the `fastlane env` command.
|
191
|
-
|
192
|
-
# Code of Conduct
|
193
|
-
Help us keep `pem` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
|
194
|
-
|
195
|
-
# License
|
196
|
-
This project is licensed under the terms of the MIT license. See the LICENSE file.
|
197
|
-
|
198
|
-
> This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.
|
17
|
+
<h3 align="center">The <i>pem</i> docs were moved to <a href='https://docs.fastlane.tools/actions/pem'>docs.fastlane.tools</a></h3>
|
data/pilot/README.md
CHANGED
@@ -1,295 +1,17 @@
|
|
1
1
|
<h3 align="center">
|
2
|
-
<a href="https://
|
3
|
-
<img src="
|
2
|
+
<a href="https://docs.fastlane.tools/actions/pilot">
|
3
|
+
<img src="https://raw.githubusercontent.com/fastlane/fastlane/master/fastlane/assets/fastlane.png" width="100" />
|
4
4
|
<br />
|
5
5
|
fastlane
|
6
6
|
</a>
|
7
7
|
</h3>
|
8
|
-
<p align="center">
|
9
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/deliver">deliver</a> •
|
10
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/snapshot">snapshot</a> •
|
11
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/frameit">frameit</a> •
|
12
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/pem">pem</a> •
|
13
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/sigh">sigh</a> •
|
14
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/produce">produce</a> •
|
15
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/cert">cert</a> •
|
16
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/spaceship">spaceship</a> •
|
17
|
-
<b>pilot</b> •
|
18
|
-
<a href="https://github.com/fastlane/boarding">boarding</a> •
|
19
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/gym">gym</a> •
|
20
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/scan">scan</a> •
|
21
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/match">match</a> •
|
22
|
-
<a href="https://github.com/fastlane/fastlane/tree/master/precheck">precheck</a>
|
23
|
-
</p>
|
24
|
-
|
25
|
-
-------
|
26
|
-
|
27
|
-
<p align="center">
|
28
|
-
<img src="assets/PilotTextTransparentSmall.png" width="500">
|
29
|
-
</p>
|
30
|
-
|
31
|
-
Pilot
|
32
|
-
============
|
33
|
-
[![Twitter: @FastlaneTools](https://img.shields.io/badge/contact-@FastlaneTools-blue.svg?style=flat)](https://twitter.com/FastlaneTools)
|
34
|
-
[![License](https://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/fastlane/fastlane/blob/master/pilot/LICENSE)
|
35
|
-
|
36
|
-
|
37
|
-
###### The best way to manage your TestFlight testers and builds from your terminal
|
38
|
-
|
39
|
-
Pilot makes it easier to manage your app on Apple’s TestFlight. You can:
|
40
|
-
|
41
|
-
- Upload & distribute builds
|
42
|
-
- Add & remove testers
|
43
|
-
- Retrieve information about testers & devices
|
44
|
-
- Import/export all available testers
|
45
8
|
|
46
|
-
|
47
|
-
|
48
|
-
`pilot` uses [spaceship.airforce](https://spaceship.airforce) to interact with iTunes Connect :rocket:
|
49
|
-
|
50
|
-
-------
|
9
|
+
------
|
51
10
|
|
52
11
|
<p align="center">
|
53
|
-
|
54
|
-
<
|
55
|
-
|
56
|
-
<a href="#need-help">Need help?</a>
|
12
|
+
<a href="https://docs.fastlane.tools/actions/pilot">
|
13
|
+
<img src="https://raw.githubusercontent.com/fastlane/fastlane/master/pilot/assets/pilot.png" height="110">
|
14
|
+
</a>
|
57
15
|
</p>
|
58
16
|
|
59
|
-
|
60
|
-
|
61
|
-
<h5 align="center"><code>pilot</code> is part of <a href="https://fastlane.tools">fastlane</a>: The easiest way to automate beta deployments and releases for your iOS and Android apps.</h5>
|
62
|
-
|
63
|
-
# Installation
|
64
|
-
|
65
|
-
sudo gem install fastlane
|
66
|
-
|
67
|
-
# Usage
|
68
|
-
|
69
|
-
For all commands you can specify the Apple ID to use using `-u felix@krausefx.com`. If you execute `pilot` in a project already using [fastlane](https://fastlane.tools) the username and app identifier will automatically be determined.
|
70
|
-
|
71
|
-
## Uploading builds
|
72
|
-
|
73
|
-
To upload a new build, just run
|
74
|
-
|
75
|
-
```
|
76
|
-
fastlane pilot upload
|
77
|
-
```
|
78
|
-
|
79
|
-
This will automatically look for an `ipa` in your current directory and tries to fetch the login credentials from your [fastlane setup](https://fastlane.tools).
|
80
|
-
|
81
|
-
You'll be asked for any missing information. Additionally, you can pass all kinds of parameters:
|
82
|
-
|
83
|
-
```
|
84
|
-
fastlane pilot --help
|
85
|
-
```
|
86
|
-
|
87
|
-
You can pass a changelog using
|
88
|
-
|
89
|
-
```
|
90
|
-
fastlane pilot upload --changelog "Something that is new here"
|
91
|
-
```
|
92
|
-
|
93
|
-
You can also skip the submission of the binary, which means, the `ipa` file will only be uploaded and not distributed to testers:
|
94
|
-
|
95
|
-
```
|
96
|
-
fastlane pilot upload --skip_submission
|
97
|
-
```
|
98
|
-
|
99
|
-
`pilot` does all kinds of magic for you:
|
100
|
-
|
101
|
-
- Automatically detects the bundle identifier from your `ipa` file
|
102
|
-
- Automatically fetch the AppID of your app based on the bundle identifier
|
103
|
-
|
104
|
-
`pilot` uses [spaceship](https://spaceship.airforce) to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, `pilot upload` does not work on Linux, as described [in this issue](https://github.com/fastlane/fastlane/issues/5789)
|
105
|
-
|
106
|
-
## List builds
|
107
|
-
|
108
|
-
To list all builds for specific application use
|
109
|
-
|
110
|
-
```
|
111
|
-
fastlane pilot builds
|
112
|
-
```
|
113
|
-
|
114
|
-
The result lists all active builds and processing builds:
|
115
|
-
|
116
|
-
```
|
117
|
-
+-----------+---------+----------+----------+----------+
|
118
|
-
| Great App Builds |
|
119
|
-
+-----------+---------+----------+----------+----------+
|
120
|
-
| Version # | Build # | Testing | Installs | Sessions |
|
121
|
-
+-----------+---------+----------+----------+----------+
|
122
|
-
| 0.9.13 | 1 | Expired | 1 | 0 |
|
123
|
-
| 0.9.13 | 2 | Expired | 0 | 0 |
|
124
|
-
| 0.9.20 | 3 | Expired | 0 | 0 |
|
125
|
-
| 0.9.20 | 4 | Internal | 5 | 3 |
|
126
|
-
+-----------+---------+----------+----------+----------+
|
127
|
-
```
|
128
|
-
|
129
|
-
## Managing beta testers
|
130
|
-
|
131
|
-
### List of Testers
|
132
|
-
|
133
|
-
This command will list all your testers, both internal and external.
|
134
|
-
|
135
|
-
```
|
136
|
-
fastlane pilot list
|
137
|
-
```
|
138
|
-
|
139
|
-
The output will look like this:
|
140
|
-
|
141
|
-
```
|
142
|
-
+--------+--------+--------------------------+-----------+
|
143
|
-
| Internal Testers |
|
144
|
-
+--------+--------+--------------------------+-----------+
|
145
|
-
| First | Last | Email | # Devices |
|
146
|
-
+--------+--------+--------------------------+-----------+
|
147
|
-
| Felix | Krause | felix@krausefx.com | 2 |
|
148
|
-
+--------+--------+--------------------------+-----------+
|
149
|
-
|
150
|
-
+-----------+---------+----------------------------+-----------+
|
151
|
-
| External Testers |
|
152
|
-
+-----------+---------+----------------------------+-----------+
|
153
|
-
| First | Last | Email | # Devices |
|
154
|
-
+-----------+---------+----------------------------+-----------+
|
155
|
-
| Max | Manfred | email@email.com | 0 |
|
156
|
-
| Detlef | Müller | detlef@krausefx.com | 1 |
|
157
|
-
+-----------+---------+----------------------------+-----------+
|
158
|
-
```
|
159
|
-
|
160
|
-
### Add a new tester
|
161
|
-
|
162
|
-
To add a new tester to both your iTunes Connect account and to your app (if given), use the `pilot add` command. This will create a new tester (if necessary) or add an existing tester to the app to test.
|
163
|
-
|
164
|
-
```
|
165
|
-
fastlane pilot add email@invite.com
|
166
|
-
```
|
167
|
-
|
168
|
-
Additionally you can specify the app identifier (if necessary):
|
169
|
-
|
170
|
-
```
|
171
|
-
fastlane pilot add email@email.com -a com.krausefx.app
|
172
|
-
```
|
173
|
-
|
174
|
-
### Find a tester
|
175
|
-
|
176
|
-
To find a specific tester use
|
177
|
-
|
178
|
-
```
|
179
|
-
fastlane pilot find felix@krausefx.com
|
180
|
-
```
|
181
|
-
|
182
|
-
The resulting output will look like this:
|
183
|
-
|
184
|
-
```
|
185
|
-
+---------------------+---------------------+
|
186
|
-
| felix@krausefx.com |
|
187
|
-
+---------------------+---------------------+
|
188
|
-
| First name | Felix |
|
189
|
-
| Last name | Krause |
|
190
|
-
| Email | felix@krausefx.com |
|
191
|
-
| Latest Version | 0.9.14 (23 |
|
192
|
-
| Latest Install Date | 03/28/15 19:00 |
|
193
|
-
| 2 Devices | • iPhone 6, iOS 8.3 |
|
194
|
-
| | • iPhone 5, iOS 7.0 |
|
195
|
-
+---------------------+---------------------+
|
196
|
-
```
|
197
|
-
|
198
|
-
### Remove a tester
|
199
|
-
|
200
|
-
This command will only remove external beta testers.
|
201
|
-
|
202
|
-
```
|
203
|
-
fastlane pilot remove felix@krausefx.com
|
204
|
-
```
|
205
|
-
|
206
|
-
### Export testers
|
207
|
-
|
208
|
-
To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account.
|
209
|
-
|
210
|
-
```
|
211
|
-
fastlane pilot export
|
212
|
-
```
|
213
|
-
|
214
|
-
### Import testers
|
215
|
-
|
216
|
-
Add external testers from a CSV file. Sample CSV file available [here](https://itunesconnect.apple.com/itc/docs/tester_import.csv).
|
217
|
-
|
218
|
-
```
|
219
|
-
fastlane pilot import
|
220
|
-
```
|
221
|
-
|
222
|
-
You can also specify the directory using
|
223
|
-
|
224
|
-
```
|
225
|
-
fastlane pilot export -c ~/Desktop/testers.csv
|
226
|
-
fastlane pilot import -c ~/Desktop/testers.csv
|
227
|
-
```
|
228
|
-
|
229
|
-
# Tips
|
230
|
-
|
231
|
-
## [`fastlane`](https://fastlane.tools) Toolchain
|
232
|
-
|
233
|
-
- [`fastlane`](https://fastlane.tools): The easiest way to automate beta deployments and releases for your iOS and Android apps
|
234
|
-
- [`deliver`](https://github.com/fastlane/fastlane/tree/master/deliver): Upload screenshots, metadata and your app to the App Store
|
235
|
-
- [`snapshot`](https://github.com/fastlane/fastlane/tree/master/snapshot): Automate taking localized screenshots of your iOS app on every device
|
236
|
-
- [`frameit`](https://github.com/fastlane/fastlane/tree/master/frameit): Quickly put your screenshots into the right device frames
|
237
|
-
- [`produce`](https://github.com/fastlane/fastlane/tree/master/produce): Create new iOS apps on iTunes Connect and Dev Portal using the command line
|
238
|
-
- [`pem`](https://github.com/fastlane/fastlane/tree/master/pem): Automatically generate and renew your push notification profiles
|
239
|
-
- [`sigh`](https://github.com/fastlane/fastlane/tree/master/sigh): Because you would rather spend your time building stuff than fighting provisioning
|
240
|
-
- [`cert`](https://github.com/fastlane/fastlane/tree/master/cert): Automatically create and maintain iOS code signing certificates
|
241
|
-
- [`spaceship`](https://github.com/fastlane/fastlane/tree/master/spaceship): Ruby library to access the Apple Dev Center and iTunes Connect
|
242
|
-
- [`boarding`](https://github.com/fastlane/boarding): The easiest way to invite your TestFlight beta testers
|
243
|
-
- [`gym`](https://github.com/fastlane/fastlane/tree/master/gym): Building your iOS apps has never been easier
|
244
|
-
- [`scan`](https://github.com/fastlane/fastlane/tree/master/scan): The easiest way to run tests of your iOS and Mac app
|
245
|
-
- [`match`](https://github.com/fastlane/fastlane/tree/master/match): Easily sync your certificates and profiles across your team using git
|
246
|
-
- [`precheck`](https://github.com/fastlane/fastlane/tree/master/precheck): Check your app using a community driven set of App Store review rules to avoid being rejected
|
247
|
-
|
248
|
-
##### [Do you like fastlane? Be the first to know about updates and new fastlane tools](https://tinyletter.com/fastlane-tools)
|
249
|
-
|
250
|
-
## Debug information
|
251
|
-
|
252
|
-
If you run into any issues you can use the `verbose` mode to get a more detailed output:
|
253
|
-
|
254
|
-
fastlane pilot upload --verbose
|
255
|
-
|
256
|
-
## Firewall Issues
|
257
|
-
|
258
|
-
`pilot` uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using
|
259
|
-
|
260
|
-
```
|
261
|
-
DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV" pilot ...
|
262
|
-
```
|
263
|
-
|
264
|
-
If you are using `pilot` via the [fastlane action](https://docs.fastlane.tools/actions#pilot), add the following to your `Fastfile`
|
265
|
-
|
266
|
-
```
|
267
|
-
ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-t DAV"
|
268
|
-
pilot...
|
269
|
-
```
|
270
|
-
|
271
|
-
## Credentials Issues
|
272
|
-
|
273
|
-
If your password contains special characters, `pilot` may throw a confusing error saying your "Your Apple ID or password was entered incorrectly". The easiest way to fix this error is to change your password to something that **does not** contains special characters.
|
274
|
-
|
275
|
-
## How is my password stored?
|
276
|
-
|
277
|
-
`pilot` uses the [CredentialsManager](https://github.com/fastlane/fastlane/tree/master/credentials_manager) from `fastlane`.
|
278
|
-
|
279
|
-
# Need help?
|
280
|
-
|
281
|
-
Before submitting a new GitHub issue, please make sure to
|
282
|
-
|
283
|
-
- Check out [docs.fastlane.tools](https://docs.fastlane.tools)
|
284
|
-
- Check out the README pages on [this repo](https://github.com/fastlane/fastlane)
|
285
|
-
- Search for [existing GitHub issues](https://github.com/fastlane/fastlane/issues)
|
286
|
-
|
287
|
-
If the above doesn't help, please [submit an issue](https://github.com/fastlane/fastlane/issues) on GitHub and provide information about your setup, in particular the output of the `fastlane env` command.
|
288
|
-
|
289
|
-
# Code of Conduct
|
290
|
-
Help us keep `pilot` open and inclusive. Please read and follow our [Code of Conduct](https://github.com/fastlane/fastlane/blob/master/CODE_OF_CONDUCT.md).
|
291
|
-
|
292
|
-
# License
|
293
|
-
This project is licensed under the terms of the MIT license. See the LICENSE file.
|
294
|
-
|
295
|
-
> This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.
|
17
|
+
<h3 align="center">The <i>pilot</i> docs were moved to <a href='https://docs.fastlane.tools/actions/pilot'>docs.fastlane.tools</a></h3>
|