fastlane 2.110.0 → 2.111.0.beta.20181211193027
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +100 -33
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +26 -6
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +1 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/match/lib/match/storage/google_cloud_storage.rb +4 -0
- metadata +4 -8
- data/deliver/lib/deliver/.options.rb.swp +0 -0
- data/fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
- data/spaceship/lib/spaceship/api/.DS_Store +0 -0
- data/spaceship/lib/spaceship/api/.base.rb.swp +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 521ad6f2779decbee1053eeb8246c05c6c83e312
|
4
|
+
data.tar.gz: 8e1d82ac4f6e4954930ae949f26c2be99737eb5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30674c9a28d82a5699a39db72ffe6233fa5bb899fe44c98f1731158bf1d760226176192e86105f35655041ba86adf00a2f1363c5bc69b7d4dcd6710291a7e645
|
7
|
+
data.tar.gz: ebcc40e3478f7c55abc94d68ca3bcde812b44a5e78a18328329d60f7f336cd00141d1329fd3aa5176ae2f45872ba53a79bb1944d028a5269a53cb859f4cd5b47
|
@@ -74,7 +74,13 @@ fastlane match init
|
|
74
74
|
|
75
75
|
<img src="/img/actions/match_init.gif" width="550" />
|
76
76
|
|
77
|
-
You'll be asked
|
77
|
+
You'll be asked if you want to store your code signing identities inside a Git repo, or on Google Cloud.
|
78
|
+
|
79
|
+
#### Git Storage
|
80
|
+
|
81
|
+
Use Git Storage to store all code signing identities in a private git repo, owned and operated by you. The files will be encrypted using OpenSSL.
|
82
|
+
|
83
|
+
First, enter the URL to your Git repo. This can be either a `https://` or a `git` URL. (If your machine is currently using SSH to authenticate with GitHub, you'll want to use a `git` URL, otherwise you may see an authentication error when you attempt to use match.) `fastlane match init` won't read or modify your certificates or profiles yet, and also won't validate your git URL.
|
78
84
|
|
79
85
|
This will create a `Matchfile` in your current directory (or in your `./fastlane/` folder).
|
80
86
|
|
@@ -87,15 +93,33 @@ app_identifier("tools.fastlane.app")
|
|
87
93
|
username("user@fastlane.tools")
|
88
94
|
```
|
89
95
|
|
90
|
-
####
|
96
|
+
#### Google Cloud Storage
|
97
|
+
|
98
|
+
Use [Google Cloud Storage](https://cloud.google.com/storage/) for a fully hosted solution for your code signing identities. Certificates are stored on Google Cloud, encrypted using Google managed keys. Everything will be stored on your Google account, inside a storage bucket you provide. You can also directly access the files using the web console.
|
99
|
+
|
100
|
+
This will create a `Matchfile` in your current directory (or in your `./fastlane/` folder).
|
101
|
+
|
102
|
+
Example content (for more advanced setups check out the [fastlane section](#fastlane)):
|
103
|
+
|
104
|
+
```ruby-skip-tests
|
105
|
+
google_cloud_bucket_name("major-key-certificates")
|
106
|
+
```
|
107
|
+
|
108
|
+
### Multiple teams
|
109
|
+
|
110
|
+
#### Git Storage
|
91
111
|
|
92
|
-
_match_ also supports storing certificates of multiple teams in one repo, by using separate git branches. If you work in multiple teams, make sure to set the `git_branch` parameter to a unique value per team. From there, _match_ will automatically create and use the specified branch for you.
|
112
|
+
Use one git branch per team. _match_ also supports storing certificates of multiple teams in one repo, by using separate git branches. If you work in multiple teams, make sure to set the `git_branch` parameter to a unique value per team. From there, _match_ will automatically create and use the specified branch for you.
|
93
113
|
|
94
114
|
```ruby
|
95
115
|
match(git_branch: "team1", username: "user@team1.com")
|
96
116
|
match(git_branch: "team2", username: "user@team2.com")
|
97
117
|
```
|
98
118
|
|
119
|
+
#### Google Cloud Storage
|
120
|
+
|
121
|
+
If you use Google Cloud Storage, you don't need to do anything manually. Just use Google Cloud Storage, and the top level folder will be the team ID.
|
122
|
+
|
99
123
|
### Run
|
100
124
|
|
101
125
|
> Before running _match_ for the first time, you should consider clearing your existing profiles and certificates using the [match nuke command](#nuke).
|
@@ -112,7 +136,7 @@ fastlane match development
|
|
112
136
|
|
113
137
|
<img src="/img/actions/match_appstore_small.gif" width="550" />
|
114
138
|
|
115
|
-
This will create a new certificate and provisioning profile (if required) and store them in your
|
139
|
+
This will create a new certificate and provisioning profile (if required) and store them in your selected storage. If you previously ran _match_ it will automatically install the existing profiles from storage.
|
116
140
|
|
117
141
|
The provisioning profiles are installed in `~/Library/MobileDevice/Provisioning Profiles` while the certificates and private keys are installed in your Keychain.
|
118
142
|
|
@@ -130,7 +154,7 @@ fastlane action match
|
|
130
154
|
|
131
155
|
#### Handle multiple targets
|
132
156
|
|
133
|
-
If you have several targets with different bundle identifiers, supply them as a comma-separated list to
|
157
|
+
If you have several targets with different bundle identifiers, supply them as a comma-separated list to:
|
134
158
|
|
135
159
|
```no-highlight
|
136
160
|
fastlane match appstore -a tools.fastlane.app,tools.fastlane.app.watchkitapp
|
@@ -140,16 +164,17 @@ You can make this even easier using [_fastlane_](https://fastlane.tools) by crea
|
|
140
164
|
|
141
165
|
```ruby
|
142
166
|
lane :certificates do
|
143
|
-
match(app_identifier: ["com.krausefx.app1", "com.krausefx.app2", "com.krausefx.app3"]
|
167
|
+
match(app_identifier: ["com.krausefx.app1", "com.krausefx.app2", "com.krausefx.app3"])
|
144
168
|
end
|
145
169
|
```
|
146
170
|
|
147
171
|
Then all your team has to do is `fastlane certificates` and keys, certs and profiles for all targets will be synced.
|
148
172
|
|
149
173
|
#### Handle multiple apps per developer/distribution certificate
|
174
|
+
|
150
175
|
If you want to use a single developer and/or distribution certificate for multiple apps belonging to the same development team, you may use the same signing identities repository and branch to store the signing identities for your apps:
|
151
176
|
|
152
|
-
Matchfile for both App #1 and #2:
|
177
|
+
`Matchfile` example for both App #1 and #2:
|
153
178
|
|
154
179
|
```ruby-skip-tests
|
155
180
|
git_url("https://github.com/example/example-repo.git")
|
@@ -160,10 +185,30 @@ _match_ will reuse certificates and will create separate provisioning profiles f
|
|
160
185
|
|
161
186
|
#### Passphrase
|
162
187
|
|
188
|
+
*Git Repo storage only*
|
189
|
+
|
163
190
|
When running _match_ for the first time on a new machine, it will ask you for the passphrase for the Git repository. This is an additional layer of security: each of the files will be encrypted using `openssl`. Make sure to remember the password, as you'll need it when you run match on a different machine.
|
164
191
|
|
165
192
|
To set the passphrase to decrypt your profiles using an environment variable, use `MATCH_PASSWORD`.
|
166
193
|
|
194
|
+
#### Migrate from Git Repo to Google Cloud
|
195
|
+
|
196
|
+
If you're already using a Git Repo, but would like to switch to using Google Cloud Storage, just run the following command to automatically migrate all your existing code signing identities and provisioning profiles
|
197
|
+
|
198
|
+
```no-highlight
|
199
|
+
fastlane match migrate
|
200
|
+
```
|
201
|
+
|
202
|
+
After a successful migration you can safely delete your git repo.
|
203
|
+
|
204
|
+
#### Google Cloud `gc_keys.json`
|
205
|
+
|
206
|
+
*Google Cloud Storage only*
|
207
|
+
|
208
|
+
When running `fastlane match init` the first time, the setup process will help you create your `gc_keys.json` file. This file contains the auth credentials needed to access your Google Cloud storage bucket. Make sure to keep that file secret and never add it to version control.
|
209
|
+
|
210
|
+
We recommend adding `gc_keys.json` to your `.gitignore` and manually add the file to all your work machines. Every developer should create their own `gc_keys.json` file, which will give the admin full control over who has read/write access to the given Storage bucket. At the same time it allows your team to revoke a single key if a file gets compromised.
|
211
|
+
|
167
212
|
#### New machine
|
168
213
|
|
169
214
|
To set up the certificates and provisioning profiles on a new machine, you just run the same command using:
|
@@ -178,22 +223,32 @@ You can also run _match_ in a `readonly` mode to be sure it won't create any new
|
|
178
223
|
fastlane match development --readonly
|
179
224
|
```
|
180
225
|
|
226
|
+
We recommend to always use `readonly` mode when running _fastlane_ on CI systems. This can be done using
|
227
|
+
|
228
|
+
```ruby
|
229
|
+
lane :beta do
|
230
|
+
match(type: "appstore", readonly: is_ci)
|
231
|
+
|
232
|
+
gym(scheme: "Release")
|
233
|
+
end
|
234
|
+
```
|
235
|
+
|
181
236
|
#### Access Control
|
182
237
|
|
183
238
|
A benefit of using _match_ is that it enables you to give the developers of your team access to the code signing certificates without having to give everyone access to the Developer Portal:
|
184
239
|
|
185
|
-
1. Run _match_ to store the certificates in a Git repo
|
186
|
-
2. Grant access to the Git repo to your developers and give them the passphrase
|
187
|
-
3. The developers can now run _match_ which will install the latest code signing profiles so they can build and sign the application without having to have access to the
|
240
|
+
1. Run _match_ to store the certificates in a Git repo or Google Cloud Storage
|
241
|
+
2. Grant access to the Git repo / Google Cloud Storage Bucket to your developers and give them the passphrase (for git storage)
|
242
|
+
3. The developers can now run _match_ which will install the latest code signing profiles so they can build and sign the application without having to have access to the Developer Portal
|
188
243
|
4. Every time you run _match_ to update the profiles (e.g. add a new device), all your developers will automatically get the latest profiles when running _match_
|
189
244
|
|
190
|
-
If you decide to run _match_ without access to the
|
245
|
+
If you decide to run _match_ without access to the Developer Portal, make sure to use the `--readonly` option so that the commands don't ask you for the password to the Developer Portal.
|
191
246
|
|
192
|
-
The advantage of this approach is that no one in your team will revoke a certificate by mistake
|
247
|
+
The advantage of this approach is that no one in your team will revoke a certificate by mistake, while having all code signing secrets in one location.
|
193
248
|
|
194
|
-
####
|
249
|
+
#### Folder structure
|
195
250
|
|
196
|
-
After running _match_ for the first time, your Git repo will contain 2 directories:
|
251
|
+
After running _match_ for the first time, your Git repo or Google Cloud bucket will contain 2 directories:
|
197
252
|
|
198
253
|
- The `certs` folder contains all certificates with their private keys
|
199
254
|
- The `profiles` folder contains all provisioning profiles
|
@@ -204,6 +259,8 @@ Additionally, _match_ creates a nice repo `README.md` for you, making it easy to
|
|
204
259
|
<img src="/img/actions/github_repo.png" width="700" />
|
205
260
|
</p>
|
206
261
|
|
262
|
+
In the case of Google Cloud, the top level folder will be the team ID.
|
263
|
+
|
207
264
|
#### fastlane
|
208
265
|
|
209
266
|
Add _match_ to your `Fastfile` to automatically fetch the latest code signing certificates with [_fastlane_](https://fastlane.tools).
|
@@ -211,15 +268,12 @@ Add _match_ to your `Fastfile` to automatically fetch the latest code signing ce
|
|
211
268
|
```
|
212
269
|
match(type: "appstore")
|
213
270
|
|
214
|
-
match(
|
215
|
-
type: "development")
|
271
|
+
match(type: "development")
|
216
272
|
|
217
|
-
match(
|
218
|
-
type: "adhoc",
|
273
|
+
match(type: "adhoc",
|
219
274
|
app_identifier: "tools.fastlane.app")
|
220
275
|
|
221
|
-
match(
|
222
|
-
type: "enterprise",
|
276
|
+
match(type: "enterprise",
|
223
277
|
app_identifier: "tools.fastlane.app")
|
224
278
|
|
225
279
|
# _match_ should be called before building the app with _gym_
|
@@ -250,21 +304,20 @@ fastlane match adhoc --force_for_new_devices
|
|
250
304
|
|
251
305
|
##### Multiple Targets
|
252
306
|
|
253
|
-
If your app has multiple targets (e.g. Today Widget or
|
307
|
+
If your app has multiple targets (e.g. Today Widget or watchOS Extension)
|
254
308
|
|
255
309
|
```ruby
|
256
310
|
match(app_identifier: ["tools.fastlane.app", "tools.fastlane.app.today_widget"], type: "appstore")
|
257
311
|
```
|
258
312
|
|
259
|
-
_match_ can
|
313
|
+
_match_ can use the same one Git repository or Google Cloud Storage for all bundle identifiers.
|
260
314
|
|
261
315
|
##### Templates (aka: custom entitlements)
|
262
316
|
|
263
317
|
Match can generate profiles that contain custom entitlements by passing in the entitlement's name with the `template_name` parameter.
|
264
318
|
|
265
319
|
```
|
266
|
-
match(
|
267
|
-
type: "development",
|
320
|
+
match(type: "development",
|
268
321
|
template_name: "Apple Pay Pass Suppression Development")
|
269
322
|
```
|
270
323
|
|
@@ -288,7 +341,8 @@ You can statically select the right provisioning profile in your Xcode project (
|
|
288
341
|
|
289
342
|
### Continuous Integration
|
290
343
|
|
291
|
-
####
|
344
|
+
#### Git repo access
|
345
|
+
|
292
346
|
There is one tricky part of setting up a CI system to work with _match_, which is enabling the CI to access the repo. Usually you'd just add your CI's public ssh key as a deploy key to your _match_ repo, but since your CI will already likely be using its public ssh key to access the codebase repo, [you won't be able to do that](https://help.github.com/articles/error-key-already-in-use/).
|
293
347
|
|
294
348
|
Some repo hosts might allow you to use the same deploy key for different repos, but GitHub will not. If your host does, you don't need to worry about this, just add your CI's public ssh key as a deploy key for your _match_ repo and scroll down to "_Encryption password_".
|
@@ -300,9 +354,14 @@ There are a few ways around this:
|
|
300
354
|
|
301
355
|
Neither solution is pretty. It's one of those _trade-off_ things. Do you care more about **not** having an extra account sitting around, or do you care more about having the :sparkles: of auto-syncing of credentials.
|
302
356
|
|
303
|
-
####
|
357
|
+
#### Git repo encryption password
|
358
|
+
|
304
359
|
Once you've decided which approach to take, all that's left to do is to set your encryption password as secret environment variable named `MATCH_PASSWORD`. _match_ will pick this up when it's run.
|
305
360
|
|
361
|
+
#### Google Cloud Storage access
|
362
|
+
|
363
|
+
Accessing Google Cloud Storage from your CI system requires you to provide the `gc_keys.json` file as part of your build. How you implement this is your decision. You can inject that file during build time.
|
364
|
+
|
306
365
|
### Nuke
|
307
366
|
|
308
367
|
If you never really cared about code signing and have a messy Apple Developer account with a lot of invalid, expired or Xcode managed profiles/certificates, you can use the `match nuke` command to revoke your certificates and provisioning profiles. Don't worry, apps that are already available in the App Store / TestFlight will still work. Builds distributed via Ad Hoc or Enterprise will be disabled after nuking your account, so you'll have to re-upload a new build. After clearing your account you'll start from a clean state, and you can run _match_ to generate your certificates and profiles again.
|
@@ -319,6 +378,8 @@ fastlane match nuke enterprise
|
|
319
378
|
|
320
379
|
You'll have to confirm a list of profiles / certificates that will be deleted.
|
321
380
|
|
381
|
+
## Advanced Git Storage features
|
382
|
+
|
322
383
|
### Change Password
|
323
384
|
|
324
385
|
To change the password of your repo and therefore decrypting and encrypting all files run:
|
@@ -362,34 +423,40 @@ openssl pkcs12 -export -out "cert.p12" -inkey "key.pem" -in "cert.pem" -password
|
|
362
423
|
|
363
424
|
## Is this secure?
|
364
425
|
|
426
|
+
### Git
|
427
|
+
|
365
428
|
Both your keys and provisioning profiles are encrypted using OpenSSL using a passphrase.
|
366
429
|
|
367
|
-
Storing your private keys in a Git repo may sound off-putting at first. We did an
|
430
|
+
Storing your private keys in a Git repo may sound off-putting at first. We did an analysis of potential security issues, see section below.
|
431
|
+
|
432
|
+
### Google Cloud Storage
|
433
|
+
|
434
|
+
All your keys and provisioning profiles are encrypted using Google managed keys.
|
368
435
|
|
369
|
-
|
436
|
+
### What could happen if someone stole a private key?
|
370
437
|
|
371
438
|
If attackers would have your certificate and provisioning profile, they could codesign an application with the same bundle identifier.
|
372
439
|
|
373
440
|
What's the worst that could happen for each of the profile types?
|
374
441
|
|
375
|
-
|
442
|
+
#### App Store Profiles
|
376
443
|
|
377
444
|
An App Store profile can't be used for anything as long as it's not re-signed by Apple. The only way to get an app resigned is to submit an app for review which could take anywhere from 24 hours to a few days (checkout [appreviewtimes.com](http://appreviewtimes.com) for up-to-date expectations). Attackers could only submit an app for review, if they also got access to your App Store Connect credentials (which are not stored in git, but in your local keychain). Additionally you get an email notification every time a build gets uploaded to cancel the submission even before your app gets into the review stage.
|
378
445
|
|
379
|
-
|
446
|
+
#### Development and Ad Hoc Profiles
|
380
447
|
|
381
448
|
In general those profiles are harmless as they can only be used to install a signed application on a small subset of devices. To add new devices, the attacker would also need your Apple Developer Portal credentials (which are not stored in git, but in your local keychain).
|
382
449
|
|
383
|
-
|
450
|
+
#### Enterprise Profiles
|
384
451
|
|
385
452
|
Attackers could use an In-House profile to distribute signed application to a potentially unlimited number of devices. All this would run under your company name and it could eventually lead to Apple revoking your In-House account. However it is very easy to revoke a certificate to remotely break the app on all devices.
|
386
453
|
|
387
454
|
Because of the potentially dangerous nature of In-House profiles please use _match_ with enterprise profiles with caution, ensure your git repository is private and use a secure password.
|
388
455
|
|
389
|
-
|
456
|
+
#### To sum up
|
390
457
|
|
391
458
|
- You have full control over the access list of your Git repo, no third party service involved
|
392
459
|
- Even if your certificates are leaked, they can't be used to cause any harm without your App Store Connect login credentials
|
393
460
|
- Use In-House enterprise profile with _match_ with caution
|
394
461
|
- If you use GitHub or Bitbucket we encourage enabling 2 factor authentication for all accounts that have access to the certificates repo
|
395
|
-
- The complete source code of _match_ is fully open source on [GitHub](https://
|
462
|
+
- The complete source code of _match_ is fully open source on [GitHub](https://github.com/fastlane/fastlane/)
|
@@ -88,12 +88,6 @@ To get a list of available options run
|
|
88
88
|
fastlane action deliver
|
89
89
|
```
|
90
90
|
|
91
|
-
Select a previously uploaded build and submit it for review.
|
92
|
-
|
93
|
-
```no-highlight
|
94
|
-
fastlane deliver submit_build --build_number 830
|
95
|
-
```
|
96
|
-
|
97
91
|
### Use in a `Fastfile`
|
98
92
|
|
99
93
|
```ruby
|
@@ -393,6 +387,32 @@ The english name of the secondary first sub category you want to set
|
|
393
387
|
The english name of the secondary second sub category you want to set
|
394
388
|
</details>
|
395
389
|
|
390
|
+
# Submit Build
|
391
|
+
_deliver_ allows you to promote an existing build to production. Below are examples to select a previously uploaded build and submit it for review.
|
392
|
+
|
393
|
+
```no-highlight
|
394
|
+
fastlane deliver submit_build --build_number 830
|
395
|
+
```
|
396
|
+
|
397
|
+
### Submit build in a `Fastfile`
|
398
|
+
|
399
|
+
```ruby
|
400
|
+
lane :submit_review do
|
401
|
+
deliver(
|
402
|
+
build_number: '830',
|
403
|
+
submit_for_review: true,
|
404
|
+
automatic_release: true,
|
405
|
+
force: true, # Skip HTMl report verification
|
406
|
+
skip_metadata: true,
|
407
|
+
skip_screenshots: true,
|
408
|
+
skip_binary_upload: true
|
409
|
+
)
|
410
|
+
end
|
411
|
+
```
|
412
|
+
|
413
|
+
Omit `build_number` to let _fastlane_ automatically select the latest build number for the current version being edited for release from App Store Connect.
|
414
|
+
|
415
|
+
|
396
416
|
# Credentials
|
397
417
|
|
398
418
|
A detailed description about how your credentials are handled is available in a [credentials_manager](https://github.com/fastlane/fastlane/tree/master/credentials_manager).
|
@@ -122,7 +122,7 @@ Note that these will replace the current images and screenshots on the play stor
|
|
122
122
|
|
123
123
|
## Changelogs (What's new)
|
124
124
|
|
125
|
-
You can add changelog files under the `changelogs/` directory for each locale. The filename should exactly match the version code of the APK that it represents. `fastlane supply init` will populate changelog files from existing data on Google Play if no `metadata/` directory exists when it is run.
|
125
|
+
You can add changelog files under the `changelogs/` directory for each locale. The filename should exactly match the [version code](https://developer.android.com/studio/publish/versioning#appversioning) of the APK that it represents. `fastlane supply init` will populate changelog files from existing data on Google Play if no `metadata/` directory exists when it is run.
|
126
126
|
|
127
127
|
```no-highlight
|
128
128
|
└── fastlane
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.
|
2
|
+
VERSION = '2.111.0.beta.20181211193027'.freeze
|
3
3
|
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
|
4
4
|
MINIMUM_XCODE_RELEASE = "7.0".freeze
|
5
5
|
RUBOCOP_REQUIREMENT = '0.49.1'.freeze
|
@@ -197,6 +197,10 @@ module Match
|
|
197
197
|
UI.input("Confirm with enter")
|
198
198
|
end
|
199
199
|
|
200
|
+
UI.important("Please never add the #{DEFAULT_KEYS_FILE_NAME.cyan} file in version control.")
|
201
|
+
UI.important("Instead please add the file to your .gitignore")
|
202
|
+
UI.input("Confirm with enter")
|
203
|
+
|
200
204
|
return DEFAULT_KEYS_FILE_NAME
|
201
205
|
end
|
202
206
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.111.0.beta.20181211193027
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -923,7 +923,6 @@ files:
|
|
923
923
|
- deliver/lib/assets/ScreenshotsHelp
|
924
924
|
- deliver/lib/assets/summary.html.erb
|
925
925
|
- deliver/lib/deliver.rb
|
926
|
-
- deliver/lib/deliver/.options.rb.swp
|
927
926
|
- deliver/lib/deliver/app_screenshot.rb
|
928
927
|
- deliver/lib/deliver/commands_generator.rb
|
929
928
|
- deliver/lib/deliver/detect_values.rb
|
@@ -1280,7 +1279,6 @@ files:
|
|
1280
1279
|
- fastlane/swift/Fastlane.swift
|
1281
1280
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.pbxproj
|
1282
1281
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
|
1283
|
-
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/project.xcworkspace/xcuserdata/josh.xcuserdatad/UserInterfaceState.xcuserstate
|
1284
1282
|
- fastlane/swift/FastlaneSwiftRunner/FastlaneSwiftRunner.xcodeproj/xcshareddata/xcschemes/FastlaneRunner.xcscheme
|
1285
1283
|
- fastlane/swift/FastlaneSwiftRunner/README.txt
|
1286
1284
|
- fastlane/swift/Gymfile.swift
|
@@ -1558,8 +1556,6 @@ files:
|
|
1558
1556
|
- spaceship/lib/assets/languageMapping.json
|
1559
1557
|
- spaceship/lib/assets/languageMappingReadable.json
|
1560
1558
|
- spaceship/lib/spaceship.rb
|
1561
|
-
- spaceship/lib/spaceship/api/.DS_Store
|
1562
|
-
- spaceship/lib/spaceship/api/.base.rb.swp
|
1563
1559
|
- spaceship/lib/spaceship/babosa_fix.rb
|
1564
1560
|
- spaceship/lib/spaceship/base.rb
|
1565
1561
|
- spaceship/lib/spaceship/client.rb
|
@@ -1707,12 +1703,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1707
1703
|
version: 2.0.0
|
1708
1704
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1709
1705
|
requirements:
|
1710
|
-
- - "
|
1706
|
+
- - ">"
|
1711
1707
|
- !ruby/object:Gem::Version
|
1712
|
-
version:
|
1708
|
+
version: 1.3.1
|
1713
1709
|
requirements: []
|
1714
1710
|
rubyforge_project:
|
1715
|
-
rubygems_version: 2.
|
1711
|
+
rubygems_version: 2.6.8
|
1716
1712
|
signing_key:
|
1717
1713
|
specification_version: 4
|
1718
1714
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|