fastlane 2.89.0.beta.20180402050042 → 2.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +70 -70
- data/fastlane/lib/fastlane/actions/automatic_code_signing.rb +8 -0
- data/fastlane/lib/fastlane/actions/docs/create_app_online.md +27 -12
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/get_version_number.rb +4 -1
- data/fastlane/lib/fastlane/actions/register_devices.rb +33 -12
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +7 -3
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/produce/lib/produce/commands_generator.rb +18 -6
- data/produce/lib/produce/developer_center.rb +8 -6
- data/produce/lib/produce/service.rb +28 -5
- data/snapshot/lib/snapshot/test_command_generator.rb +2 -10
- data/spaceship/lib/spaceship/portal/app_service.rb +7 -5
- data/spaceship/lib/spaceship/test_flight/client.rb +7 -0
- data/spaceship/lib/spaceship/test_flight/group.rb +5 -0
- metadata +32 -32
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6dc8f9a337594c7230b0d1aeb872d5810cc7dd33
|
|
4
|
+
data.tar.gz: 44e891c36ef3aa5e3d404f5b279febef9e357760
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1380d44e688126e1c2973a14f6f08272114e17794a8ff010072bcbd90bee6b015ca47fe6729790e394bde3e0bff9a363a5f2a0349ae29a126c0a2e0cec70a80a
|
|
7
|
+
data.tar.gz: '043792d70a28425a06674508f975855805fea67bf481030dbdefd35027e36bcb6043150928eb65c51879e41e9b1a4404bffea53af53bafea6fe056615bf8c38e'
|
data/README.md
CHANGED
|
@@ -32,81 +32,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
32
32
|
|
|
33
33
|
<table id='team'>
|
|
34
34
|
<tr>
|
|
35
|
-
<td id='stefan-natchev'>
|
|
36
|
-
<a href='https://github.com/snatchev'>
|
|
37
|
-
<img src='https://github.com/snatchev.png?size=140'>
|
|
38
|
-
</a>
|
|
39
|
-
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
40
|
-
</td>
|
|
41
|
-
<td id='josh-holtz'>
|
|
42
|
-
<a href='https://github.com/joshdholtz'>
|
|
43
|
-
<img src='https://github.com/joshdholtz.png?size=140'>
|
|
44
|
-
</a>
|
|
45
|
-
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
46
|
-
</td>
|
|
47
|
-
<td id='jérôme-lacoste'>
|
|
48
|
-
<a href='https://github.com/lacostej'>
|
|
49
|
-
<img src='https://github.com/lacostej.png?size=140'>
|
|
50
|
-
</a>
|
|
51
|
-
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
52
|
-
</td>
|
|
53
|
-
<td id='helmut-januschka'>
|
|
54
|
-
<a href='https://github.com/hjanuschka'>
|
|
55
|
-
<img src='https://github.com/hjanuschka.png?size=140'>
|
|
56
|
-
</a>
|
|
57
|
-
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
58
|
-
</td>
|
|
59
|
-
<td id='danielle-tomlinson'>
|
|
60
|
-
<a href='https://github.com/DanToml'>
|
|
61
|
-
<img src='https://github.com/DanToml.png?size=140'>
|
|
62
|
-
</a>
|
|
63
|
-
<h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
|
|
64
|
-
</td>
|
|
65
|
-
</tr>
|
|
66
|
-
<tr>
|
|
67
35
|
<td id='iulian-onofrei'>
|
|
68
36
|
<a href='https://github.com/revolter'>
|
|
69
37
|
<img src='https://github.com/revolter.png?size=140'>
|
|
70
38
|
</a>
|
|
71
39
|
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
72
40
|
</td>
|
|
73
|
-
<td id='
|
|
74
|
-
<a href='https://github.com/
|
|
75
|
-
<img src='https://github.com/
|
|
41
|
+
<td id='stefan-natchev'>
|
|
42
|
+
<a href='https://github.com/snatchev'>
|
|
43
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
|
76
44
|
</a>
|
|
77
|
-
<h4 align='center'>
|
|
45
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
78
46
|
</td>
|
|
79
|
-
<td id='
|
|
80
|
-
<a href='https://github.com/
|
|
81
|
-
<img src='https://github.com/
|
|
47
|
+
<td id='manu-wallner'>
|
|
48
|
+
<a href='https://github.com/milch'>
|
|
49
|
+
<img src='https://github.com/milch.png?size=140'>
|
|
82
50
|
</a>
|
|
83
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
51
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
84
52
|
</td>
|
|
85
|
-
<td id='
|
|
86
|
-
<a href='https://github.com/
|
|
87
|
-
<img src='https://github.com/
|
|
53
|
+
<td id='kohki-miki'>
|
|
54
|
+
<a href='https://github.com/giginet'>
|
|
55
|
+
<img src='https://github.com/giginet.png?size=140'>
|
|
88
56
|
</a>
|
|
89
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
57
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
90
58
|
</td>
|
|
91
|
-
<td id='
|
|
92
|
-
<a href='https://github.com/
|
|
93
|
-
<img src='https://github.com/
|
|
59
|
+
<td id='fumiya-nakamura'>
|
|
60
|
+
<a href='https://github.com/nafu'>
|
|
61
|
+
<img src='https://github.com/nafu.png?size=140'>
|
|
94
62
|
</a>
|
|
95
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
63
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
96
64
|
</td>
|
|
97
65
|
</tr>
|
|
98
66
|
<tr>
|
|
99
|
-
<td id='
|
|
100
|
-
<a href='https://github.com/
|
|
101
|
-
<img src='https://github.com/
|
|
67
|
+
<td id='josh-holtz'>
|
|
68
|
+
<a href='https://github.com/joshdholtz'>
|
|
69
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
|
102
70
|
</a>
|
|
103
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
71
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
104
72
|
</td>
|
|
105
|
-
<td id='
|
|
106
|
-
<a href='https://github.com/
|
|
107
|
-
<img src='https://github.com/
|
|
73
|
+
<td id='jérôme-lacoste'>
|
|
74
|
+
<a href='https://github.com/lacostej'>
|
|
75
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
|
108
76
|
</a>
|
|
109
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
77
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
110
78
|
</td>
|
|
111
79
|
<td id='andrew-mcburney'>
|
|
112
80
|
<a href='https://github.com/AndrewMcBurney'>
|
|
@@ -114,25 +82,25 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
114
82
|
</a>
|
|
115
83
|
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
116
84
|
</td>
|
|
117
|
-
<td id='kohki-miki'>
|
|
118
|
-
<a href='https://github.com/giginet'>
|
|
119
|
-
<img src='https://github.com/giginet.png?size=140'>
|
|
120
|
-
</a>
|
|
121
|
-
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
122
|
-
</td>
|
|
123
85
|
<td id='jan-piotrowski'>
|
|
124
86
|
<a href='https://github.com/janpio'>
|
|
125
87
|
<img src='https://github.com/janpio.png?size=140'>
|
|
126
88
|
</a>
|
|
127
89
|
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
128
90
|
</td>
|
|
91
|
+
<td id='joshua-liebowitz'>
|
|
92
|
+
<a href='https://github.com/taquitos'>
|
|
93
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
|
94
|
+
</a>
|
|
95
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
96
|
+
</td>
|
|
129
97
|
</tr>
|
|
130
98
|
<tr>
|
|
131
|
-
<td id='
|
|
132
|
-
<a href='https://github.com/
|
|
133
|
-
<img src='https://github.com/
|
|
99
|
+
<td id='luka-mirosevic'>
|
|
100
|
+
<a href='https://github.com/lmirosevic'>
|
|
101
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
|
134
102
|
</a>
|
|
135
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
103
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
136
104
|
</td>
|
|
137
105
|
<td id='jorge-revuelta-h'>
|
|
138
106
|
<a href='https://github.com/minuscorp'>
|
|
@@ -140,17 +108,49 @@ If the above doesn't help, please [submit an issue](https://github.com/fastlane/
|
|
|
140
108
|
</a>
|
|
141
109
|
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
142
110
|
</td>
|
|
111
|
+
<td id='helmut-januschka'>
|
|
112
|
+
<a href='https://github.com/hjanuschka'>
|
|
113
|
+
<img src='https://github.com/hjanuschka.png?size=140'>
|
|
114
|
+
</a>
|
|
115
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
116
|
+
</td>
|
|
143
117
|
<td id='aaron-brager'>
|
|
144
118
|
<a href='https://github.com/getaaron'>
|
|
145
119
|
<img src='https://github.com/getaaron.png?size=140'>
|
|
146
120
|
</a>
|
|
147
121
|
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
148
122
|
</td>
|
|
149
|
-
<td id='
|
|
150
|
-
<a href='https://github.com/
|
|
151
|
-
<img src='https://github.com/
|
|
123
|
+
<td id='danielle-tomlinson'>
|
|
124
|
+
<a href='https://github.com/DanToml'>
|
|
125
|
+
<img src='https://github.com/DanToml.png?size=140'>
|
|
152
126
|
</a>
|
|
153
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
127
|
+
<h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
|
|
128
|
+
</td>
|
|
129
|
+
</tr>
|
|
130
|
+
<tr>
|
|
131
|
+
<td id='felix-krause'>
|
|
132
|
+
<a href='https://github.com/KrauseFx'>
|
|
133
|
+
<img src='https://github.com/KrauseFx.png?size=140'>
|
|
134
|
+
</a>
|
|
135
|
+
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
136
|
+
</td>
|
|
137
|
+
<td id='olivier-halligon'>
|
|
138
|
+
<a href='https://github.com/AliSoftware'>
|
|
139
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
|
140
|
+
</a>
|
|
141
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
142
|
+
</td>
|
|
143
|
+
<td id='matthew-ellis'>
|
|
144
|
+
<a href='https://github.com/matthewellis'>
|
|
145
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
|
146
|
+
</a>
|
|
147
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
148
|
+
</td>
|
|
149
|
+
<td id='jimmy-dee'>
|
|
150
|
+
<a href='https://github.com/jdee'>
|
|
151
|
+
<img src='https://github.com/jdee.png?size=140'>
|
|
152
|
+
</a>
|
|
153
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
154
154
|
</td>
|
|
155
155
|
<td id='maksym-grebenets'>
|
|
156
156
|
<a href='https://github.com/mgrebenets'>
|
|
@@ -40,6 +40,14 @@ module Fastlane
|
|
|
40
40
|
end
|
|
41
41
|
if params[:code_sign_identity]
|
|
42
42
|
build_configuration_list.set_setting("CODE_SIGN_IDENTITY", params[:code_sign_identity])
|
|
43
|
+
|
|
44
|
+
# We also need to update the value if it was overriden for a specific SDK
|
|
45
|
+
build_configuration_list.build_configurations.each do |build_configuration|
|
|
46
|
+
codesign_build_settings_keys = build_configuration.build_settings.keys.select { |key| key.to_s.match(/CODE_SIGN_IDENTITY.*/) }
|
|
47
|
+
codesign_build_settings_keys.each do |setting|
|
|
48
|
+
build_configuration_list.set_setting(setting, params[:code_sign_identity])
|
|
49
|
+
end
|
|
50
|
+
end
|
|
43
51
|
UI.important("Set Code Sign identity to: #{params[:code_sign_identity]} for target: #{found_target[:name]}")
|
|
44
52
|
end
|
|
45
53
|
if params[:profile_name]
|
|
@@ -105,14 +105,20 @@ fastlane produce enable_services --help
|
|
|
105
105
|
--game-center Enable Game Center
|
|
106
106
|
--healthkit Enable HealthKit
|
|
107
107
|
--homekit Enable HomeKit
|
|
108
|
-
--
|
|
108
|
+
--hotspot Enable Hotspot
|
|
109
109
|
--icloud STRING Enable iCloud, suitable values are "legacy" and "cloudkit"
|
|
110
110
|
--in-app-purchase Enable In-App Purchase
|
|
111
111
|
--inter-app-audio Enable Inter-App-Audio
|
|
112
|
-
--
|
|
112
|
+
--multipath Enable Multipath
|
|
113
|
+
--network-extension Enable Network Extensions
|
|
114
|
+
--nfc-tag-reading Enable NFC Tag Reading
|
|
115
|
+
--personal-vpn Enable Personal VPN
|
|
116
|
+
--passbook Enable Passbook (deprecated)
|
|
113
117
|
--push-notification Enable Push notification (only enables the service, does not configure certificates)
|
|
114
118
|
--sirikit Enable SiriKit
|
|
115
|
-
--vpn-conf Enable VPN Configuration
|
|
119
|
+
--vpn-conf Enable VPN Configuration (deprecated)
|
|
120
|
+
--wallet Enable Wallet
|
|
121
|
+
--wireless-conf Enable Wireless Accessory Configuration
|
|
116
122
|
```
|
|
117
123
|
|
|
118
124
|
```no-highlight
|
|
@@ -127,14 +133,20 @@ fastlane produce disable_services --help
|
|
|
127
133
|
--game-center Disable Game Center
|
|
128
134
|
--healthkit Disable HealthKit
|
|
129
135
|
--homekit Disable HomeKit
|
|
130
|
-
--
|
|
136
|
+
--hotspot Disable Hotspot
|
|
131
137
|
--icloud Disable iCloud
|
|
132
138
|
--in-app-purchase Disable In-App Purchase
|
|
133
139
|
--inter-app-audio Disable Inter-App-Audio
|
|
134
|
-
--
|
|
140
|
+
--multipath Disable Multipath
|
|
141
|
+
--network-extension Disable Network Extensions
|
|
142
|
+
--nfc-tag-reading Disable NFC Tag Reading
|
|
143
|
+
--personal-vpn Disable Personal VPN
|
|
144
|
+
--passbook Disable Passbook (deprecated)
|
|
135
145
|
--push-notification Disable Push notifications
|
|
136
146
|
--sirikit Disable SiriKit
|
|
137
|
-
--vpn-conf Disable VPN Configuration
|
|
147
|
+
--vpn-conf Disable VPN Configuration (deprecated)
|
|
148
|
+
--wallet Disable Wallet
|
|
149
|
+
--wireless-conf Disable Wireless Accessory Configuration
|
|
138
150
|
```
|
|
139
151
|
|
|
140
152
|
## Creating Apple Pay merchants and associating them with an App ID
|
|
@@ -197,18 +209,21 @@ lane :release do
|
|
|
197
209
|
game_center: "on", # Valid values: "on", "off"
|
|
198
210
|
health_kit: "on", # Valid values: "on", "off"
|
|
199
211
|
home_kit: "on", # Valid values: "on", "off"
|
|
200
|
-
|
|
212
|
+
hotspot: "on", # Valid values: "on", "off"
|
|
201
213
|
icloud: "cloudkit", # Valid values: "legacy", "cloudkit"
|
|
202
214
|
in_app_purchase: "on", # Valid values: "on", "off"
|
|
203
215
|
inter_app_audio: "on", # Valid values: "on", "off"
|
|
204
216
|
passbook: "on", # Valid values: "on", "off"
|
|
205
|
-
push_notification: "on", # Valid values: "on", "off"
|
|
206
|
-
siri_kit: "on", # Valid values: "on", "off"
|
|
207
|
-
vpn_configuration: "on", # Valid values: "on", "off"
|
|
208
|
-
network_extension: "on", # Valid values: "on", "off"
|
|
209
|
-
hotspot: "on", # Valid values: "on", "off"
|
|
210
217
|
multipath: "on", # Valid values: "on", "off"
|
|
218
|
+
network_extensions: "on", # Valid values: "on", "off"
|
|
211
219
|
nfc_tag_reading: "on", # Valid values: "on", "off"
|
|
220
|
+
personal_vpn: "on", # Valid values: "on", "off"
|
|
221
|
+
passbook: "on", # Valid values: "on", "off" (deprecated)
|
|
222
|
+
push_notification: "on", # Valid values: "on", "off"
|
|
223
|
+
siri_kit: "on", # Valid values: "on", "off"
|
|
224
|
+
vpn_configuration: "on", # Valid values: "on", "off" (deprecated)
|
|
225
|
+
wallet: "on", # Valid values: "on", "off"
|
|
226
|
+
wireless_accessory: "on", # Valid values: "on", "off"
|
|
212
227
|
}
|
|
213
228
|
)
|
|
214
229
|
|
|
@@ -250,7 +250,7 @@ Check out [_snapshot_](https://docs.fastlane.tools/actions/snapshot/) to automat
|
|
|
250
250
|
|
|
251
251
|
## Upload screenshots
|
|
252
252
|
|
|
253
|
-
Use [
|
|
253
|
+
Use [_deliver_](https://docs.fastlane.tools/actions/deliver/) to upload iOS screenshots to iTunes Connect, or [_supply_](https://docs.fastlane.tools/actions/supply/) to upload Android screenshots to Play Store completely automatically 🚀
|
|
254
254
|
|
|
255
255
|
## Alternative location to store device_frames
|
|
256
256
|
|
|
@@ -38,7 +38,10 @@ module Fastlane
|
|
|
38
38
|
unless target_name
|
|
39
39
|
|
|
40
40
|
# Gets non-test targets
|
|
41
|
-
non_test_targets = targets.reject
|
|
41
|
+
non_test_targets = targets.reject do |t|
|
|
42
|
+
# Not all targets respond to `test_target_type?`
|
|
43
|
+
t.respond_to?(:test_target_type?) && t.test_target_type?
|
|
44
|
+
end
|
|
42
45
|
|
|
43
46
|
# Returns if only one non-test target
|
|
44
47
|
if non_test_targets.count == 1
|
|
@@ -3,10 +3,11 @@ require 'credentials_manager'
|
|
|
3
3
|
module Fastlane
|
|
4
4
|
module Actions
|
|
5
5
|
class RegisterDevicesAction < Action
|
|
6
|
-
|
|
6
|
+
UDID_REGEXP_IOS = /^\h{40}$/
|
|
7
|
+
UDID_REGEXP_MAC = /^[\h\-]{36}$/
|
|
7
8
|
|
|
8
9
|
def self.is_supported?(platform)
|
|
9
|
-
|
|
10
|
+
[:ios, :mac].include?(platform)
|
|
10
11
|
end
|
|
11
12
|
|
|
12
13
|
def self.run(params)
|
|
@@ -15,14 +16,21 @@ module Fastlane
|
|
|
15
16
|
devices = params[:devices]
|
|
16
17
|
devices_file = params[:devices_file]
|
|
17
18
|
|
|
19
|
+
mac = params[:platform] == "mac"
|
|
20
|
+
udid_regexp = mac ? UDID_REGEXP_MAC : UDID_REGEXP_IOS
|
|
21
|
+
|
|
18
22
|
credentials = CredentialsManager::AccountManager.new(user: params[:username])
|
|
19
23
|
Spaceship.login(credentials.user, credentials.password)
|
|
20
24
|
Spaceship.select_team
|
|
21
25
|
|
|
26
|
+
UI.message("Fetching list of currently registered devices...")
|
|
27
|
+
existing_devices = Spaceship::Device.all(mac: mac)
|
|
28
|
+
|
|
22
29
|
if devices
|
|
23
30
|
device_objs = devices.map do |k, v|
|
|
24
|
-
UI.user_error!("Passed invalid UDID: #{v} for device: #{k}") unless
|
|
25
|
-
|
|
31
|
+
UI.user_error!("Passed invalid UDID: #{v} for device: #{k}") unless udid_regexp =~ v
|
|
32
|
+
next if existing_devices.map(&:udid).include?(v)
|
|
33
|
+
Spaceship::Device.create!(name: k, udid: v, mac: mac)
|
|
26
34
|
end
|
|
27
35
|
elsif devices_file
|
|
28
36
|
require 'csv'
|
|
@@ -30,16 +38,13 @@ module Fastlane
|
|
|
30
38
|
devices_file = CSV.read(File.expand_path(File.join(devices_file)), col_sep: "\t")
|
|
31
39
|
UI.user_error!("Please provide a file according to the Apple Sample UDID file (https://devimages.apple.com.edgekey.net/downloads/devices/Multiple-Upload-Samples.zip)") unless devices_file.first == ['Device ID', 'Device Name']
|
|
32
40
|
|
|
33
|
-
UI.message("Fetching list of currently registered devices...")
|
|
34
|
-
existing_devices = Spaceship::Device.all
|
|
35
|
-
|
|
36
41
|
device_objs = devices_file.drop(1).map do |device|
|
|
37
42
|
next if existing_devices.map(&:udid).include?(device[0])
|
|
38
43
|
|
|
39
44
|
UI.user_error!("Invalid device line, please provide a file according to the Apple Sample UDID file (http://devimages.apple.com/downloads/devices/Multiple-Upload-Samples.zip)") unless device.count == 2
|
|
40
|
-
UI.user_error!("Passed invalid UDID: #{device[0]} for device: #{device[1]}") unless
|
|
45
|
+
UI.user_error!("Passed invalid UDID: #{device[0]} for device: #{device[1]}") unless udid_regexp =~ device[0]
|
|
41
46
|
|
|
42
|
-
Spaceship::Device.create!(name: device[1], udid: device[0])
|
|
47
|
+
Spaceship::Device.create!(name: device[1], udid: device[0], mac: mac)
|
|
43
48
|
end
|
|
44
49
|
else
|
|
45
50
|
UI.user_error!("You must pass either a valid `devices` or `devices_file`. Please check the readme.")
|
|
@@ -56,6 +61,7 @@ module Fastlane
|
|
|
56
61
|
def self.available_options
|
|
57
62
|
user = CredentialsManager::AppfileConfig.try_fetch_value(:apple_dev_portal_id)
|
|
58
63
|
user ||= CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)
|
|
64
|
+
platform = Actions.lane_context[Actions::SharedValues::PLATFORM_NAME].to_s
|
|
59
65
|
|
|
60
66
|
[
|
|
61
67
|
FastlaneCore::ConfigItem.new(key: :devices,
|
|
@@ -95,13 +101,21 @@ module Fastlane
|
|
|
95
101
|
env_name: "DELIVER_USER",
|
|
96
102
|
description: "Optional: Your Apple ID",
|
|
97
103
|
default_value: user,
|
|
98
|
-
default_value_dynamic: true)
|
|
104
|
+
default_value_dynamic: true),
|
|
105
|
+
FastlaneCore::ConfigItem.new(key: :platform,
|
|
106
|
+
env_name: "REGISTER_DEVICES_PLATFORM",
|
|
107
|
+
description: "The platform to use (optional)",
|
|
108
|
+
optional: true,
|
|
109
|
+
default_value: platform.empty? ? "ios" : platform,
|
|
110
|
+
verify_block: proc do |value|
|
|
111
|
+
UI.user_error!("The platform can only be ios or mac") unless %('ios', 'mac').include?(value)
|
|
112
|
+
end)
|
|
99
113
|
]
|
|
100
114
|
end
|
|
101
115
|
|
|
102
116
|
def self.details
|
|
103
117
|
[
|
|
104
|
-
"This will register iOS devices with the Developer Portal so that you can include them in your provisioning profiles.",
|
|
118
|
+
"This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles.",
|
|
105
119
|
"This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work.",
|
|
106
120
|
"The action will connect to the Apple Developer Portal using the username you specified in your `Appfile` with `apple_id`, but you can override it using the `username` option, or by setting the env variable `ENV['DELIVER_USER']`."
|
|
107
121
|
].join("\n")
|
|
@@ -126,7 +140,14 @@ module Fastlane
|
|
|
126
140
|
devices_file: "./devices.txt", # You must pass in either `devices_file` or `devices`.
|
|
127
141
|
team_id: "XXXXXXXXXX", # Optional, if you"re a member of multiple teams, then you need to pass the team ID here.
|
|
128
142
|
username: "luka@goonbee.com" # Optional, lets you override the Apple Member Center username.
|
|
129
|
-
)'
|
|
143
|
+
)',
|
|
144
|
+
'register_devices(
|
|
145
|
+
devices: {
|
|
146
|
+
"Luka MacBook" => "12345678-1234-1234-1234-123456789012",
|
|
147
|
+
"Felix MacBook Pro" => "ABCDEFGH-ABCD-ABCD-ABCD-ABCDEFGHIJKL"
|
|
148
|
+
},
|
|
149
|
+
platform: "mac"
|
|
150
|
+
) # Register devices for Mac'
|
|
130
151
|
]
|
|
131
152
|
end
|
|
132
153
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module Fastlane
|
|
2
|
-
VERSION = '2.89.0
|
|
2
|
+
VERSION = '2.89.0'.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
|
|
@@ -2487,12 +2487,14 @@ func registerDevices(devices: [String : Any]? = nil,
|
|
|
2487
2487
|
devicesFile: String? = nil,
|
|
2488
2488
|
teamId: String? = nil,
|
|
2489
2489
|
teamName: String? = nil,
|
|
2490
|
-
username: String
|
|
2490
|
+
username: String,
|
|
2491
|
+
platform: String = "ios") {
|
|
2491
2492
|
let command = RubyCommand(commandID: "", methodName: "register_devices", className: nil, args: [RubyCommand.Argument(name: "devices", value: devices),
|
|
2492
2493
|
RubyCommand.Argument(name: "devices_file", value: devicesFile),
|
|
2493
2494
|
RubyCommand.Argument(name: "team_id", value: teamId),
|
|
2494
2495
|
RubyCommand.Argument(name: "team_name", value: teamName),
|
|
2495
|
-
RubyCommand.Argument(name: "username", value: username)
|
|
2496
|
+
RubyCommand.Argument(name: "username", value: username),
|
|
2497
|
+
RubyCommand.Argument(name: "platform", value: platform)])
|
|
2496
2498
|
_ = runner.executeCommand(command)
|
|
2497
2499
|
}
|
|
2498
2500
|
func resetGitRepo(files: String? = nil,
|
|
@@ -3314,6 +3316,7 @@ func teamName() {
|
|
|
3314
3316
|
func testfairy(apiKey: String,
|
|
3315
3317
|
ipa: String,
|
|
3316
3318
|
symbolsFile: String? = nil,
|
|
3319
|
+
uploadUrl: String = "https://upload.testfairy.com",
|
|
3317
3320
|
testersGroups: [String] = [],
|
|
3318
3321
|
metrics: [String] = [],
|
|
3319
3322
|
comment: String = "No comment provided",
|
|
@@ -3323,6 +3326,7 @@ func testfairy(apiKey: String,
|
|
|
3323
3326
|
let command = RubyCommand(commandID: "", methodName: "testfairy", className: nil, args: [RubyCommand.Argument(name: "api_key", value: apiKey),
|
|
3324
3327
|
RubyCommand.Argument(name: "ipa", value: ipa),
|
|
3325
3328
|
RubyCommand.Argument(name: "symbols_file", value: symbolsFile),
|
|
3329
|
+
RubyCommand.Argument(name: "upload_url", value: uploadUrl),
|
|
3326
3330
|
RubyCommand.Argument(name: "testers_groups", value: testersGroups),
|
|
3327
3331
|
RubyCommand.Argument(name: "metrics", value: metrics),
|
|
3328
3332
|
RubyCommand.Argument(name: "comment", value: comment),
|
|
@@ -3917,4 +3921,4 @@ let screengrabfile: Screengrabfile = Screengrabfile()
|
|
|
3917
3921
|
let snapshotfile: Snapshotfile = Snapshotfile()
|
|
3918
3922
|
// Please don't remove the lines below
|
|
3919
3923
|
// They are used to detect outdated files
|
|
3920
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
3924
|
+
// FastlaneRunnerAPIVersion [0.9.12]
|
|
@@ -52,14 +52,20 @@ module Produce
|
|
|
52
52
|
c.option('--game-center', 'Enable Game Center')
|
|
53
53
|
c.option('--healthkit', 'Enable HealthKit')
|
|
54
54
|
c.option('--homekit', 'Enable HomeKit')
|
|
55
|
-
c.option('--
|
|
55
|
+
c.option('--hotspot', 'Enable Hotspot')
|
|
56
56
|
c.option('--icloud STRING', String, 'Enable iCloud, suitable values are "legacy" and "cloudkit"')
|
|
57
57
|
c.option('--in-app-purchase', 'Enable In-App Purchase')
|
|
58
58
|
c.option('--inter-app-audio', 'Enable Inter-App-Audio')
|
|
59
|
-
c.option('--
|
|
59
|
+
c.option('--multipath', 'Enable Multipath')
|
|
60
|
+
c.option('--network-extension', 'Enable Network Extensions')
|
|
61
|
+
c.option('--nfc-tag-reading', 'Enable NFC Tag Reading')
|
|
62
|
+
c.option('--personal-vpn', 'Enable Personal VPN')
|
|
63
|
+
c.option('--passbook', 'Enable Passbook (deprecated)')
|
|
60
64
|
c.option('--push-notification', 'Enable Push notification (only enables the service, does not configure certificates)')
|
|
61
65
|
c.option('--sirikit', 'Enable SiriKit')
|
|
62
|
-
c.option('--vpn-conf', 'Enable VPN Configuration')
|
|
66
|
+
c.option('--vpn-conf', 'Enable VPN Configuration (deprecated)')
|
|
67
|
+
c.option('--wallet', 'Enable Wallet')
|
|
68
|
+
c.option('--wireless-conf', 'Enable Wireless Accessory Configuration')
|
|
63
69
|
|
|
64
70
|
FastlaneCore::CommanderGenerator.new.generate(Produce::Options.available_options, command: c)
|
|
65
71
|
|
|
@@ -85,14 +91,20 @@ module Produce
|
|
|
85
91
|
c.option('--game-center', 'Disable Game Center')
|
|
86
92
|
c.option('--healthkit', 'Disable HealthKit')
|
|
87
93
|
c.option('--homekit', 'Disable HomeKit')
|
|
88
|
-
c.option('--
|
|
94
|
+
c.option('--hotspot', 'Disable Hotspot')
|
|
89
95
|
c.option('--icloud', 'Disable iCloud')
|
|
90
96
|
c.option('--in-app-purchase', 'Disable In-App Purchase')
|
|
91
97
|
c.option('--inter-app-audio', 'Disable Inter-App-Audio')
|
|
92
|
-
c.option('--
|
|
98
|
+
c.option('--multipath', 'Disable Multipath')
|
|
99
|
+
c.option('--network-extension', 'Disable Network Extensions')
|
|
100
|
+
c.option('--nfc-tag-reading', 'Disable NFC Tag Reading')
|
|
101
|
+
c.option('--personal-vpn', 'Disable Personal VPN')
|
|
102
|
+
c.option('--passbook', 'Disable Passbook (deprecated)')
|
|
93
103
|
c.option('--push-notification', 'Disable Push notifications')
|
|
94
104
|
c.option('--sirikit', 'Disable SiriKit')
|
|
95
|
-
c.option('--vpn-conf', 'Disable VPN Configuration')
|
|
105
|
+
c.option('--vpn-conf', 'Disable VPN Configuration (deprecated)')
|
|
106
|
+
c.option('--wallet', 'Disable Wallet')
|
|
107
|
+
c.option('--wireless-conf', 'Disable Wireless Accessory Configuration')
|
|
96
108
|
|
|
97
109
|
FastlaneCore::CommanderGenerator.new.generate(Produce::Options.available_options, command: c)
|
|
98
110
|
|
|
@@ -23,18 +23,20 @@ module Produce
|
|
|
23
23
|
game_center: [SERVICE_ON, SERVICE_OFF],
|
|
24
24
|
health_kit: [SERVICE_ON, SERVICE_OFF],
|
|
25
25
|
home_kit: [SERVICE_ON, SERVICE_OFF],
|
|
26
|
-
|
|
26
|
+
hotspot: [SERVICE_ON, SERVICE_OFF],
|
|
27
27
|
icloud: [SERVICE_LEGACY, SERVICE_CLOUDKIT],
|
|
28
28
|
in_app_purchase: [SERVICE_ON, SERVICE_OFF],
|
|
29
29
|
inter_app_audio: [SERVICE_ON, SERVICE_OFF],
|
|
30
|
+
multipath: [SERVICE_ON, SERVICE_OFF],
|
|
31
|
+
network_extension: [SERVICE_ON, SERVICE_OFF],
|
|
32
|
+
nfc_tag_reading: [SERVICE_ON, SERVICE_OFF],
|
|
33
|
+
personal_vpn: [SERVICE_ON, SERVICE_OFF],
|
|
30
34
|
passbook: [SERVICE_ON, SERVICE_OFF],
|
|
31
35
|
push_notification: [SERVICE_ON, SERVICE_OFF],
|
|
32
36
|
siri_kit: [SERVICE_ON, SERVICE_OFF],
|
|
33
37
|
vpn_configuration: [SERVICE_ON, SERVICE_OFF],
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
multipath: [SERVICE_ON, SERVICE_OFF],
|
|
37
|
-
nfc_tag_reading: [SERVICE_ON, SERVICE_OFF]
|
|
38
|
+
wallet: [SERVICE_ON, SERVICE_OFF],
|
|
39
|
+
wireless_accessory: [SERVICE_ON, SERVICE_OFF]
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
def run
|
|
@@ -98,7 +100,7 @@ module Produce
|
|
|
98
100
|
enabled_clean_options[app_service.cloud.on.service_id] = app_service.cloud.on
|
|
99
101
|
enabled_clean_options[app_service.cloud_kit.xcode5_compatible.service_id] = app_service.cloud_kit.xcode5_compatible
|
|
100
102
|
when SERVICE_CLOUDKIT
|
|
101
|
-
enabled_clean_options[app_service.
|
|
103
|
+
enabled_clean_options[app_service.cloud.on.service_id] = app_service.cloud.on
|
|
102
104
|
enabled_clean_options[app_service.cloud_kit.cloud_kit.service_id] = app_service.cloud_kit.cloud_kit
|
|
103
105
|
end
|
|
104
106
|
else
|
|
@@ -37,8 +37,9 @@ module Produce
|
|
|
37
37
|
|
|
38
38
|
def valid_services_for(options)
|
|
39
39
|
allowed_keys = [:app_group, :apple_pay, :associated_domains, :data_protection, :game_center, :healthkit, :homekit,
|
|
40
|
-
:
|
|
41
|
-
:
|
|
40
|
+
:hotspot, :icloud, :in_app_purchase, :inter_app_audio, :multipath, :network_extension,
|
|
41
|
+
:nfc_tag_reading, :personal_vpn, :passbook, :push_notification, :sirikit, :vpn_conf,
|
|
42
|
+
:wallet, :wireless_conf]
|
|
42
43
|
options.__hash__.select { |key, value| allowed_keys.include?(key) }
|
|
43
44
|
end
|
|
44
45
|
|
|
@@ -125,6 +126,16 @@ module Produce
|
|
|
125
126
|
end
|
|
126
127
|
end
|
|
127
128
|
|
|
129
|
+
if options.wallet
|
|
130
|
+
UI.message("\tWallet")
|
|
131
|
+
|
|
132
|
+
if on
|
|
133
|
+
app.update_service(Spaceship.app_service.wallet.on)
|
|
134
|
+
else
|
|
135
|
+
app.update_service(Spaceship.app_service.wallet.off)
|
|
136
|
+
end
|
|
137
|
+
end
|
|
138
|
+
|
|
128
139
|
if options.wireless_conf
|
|
129
140
|
UI.message("\tWireless Accessory Configuration")
|
|
130
141
|
|
|
@@ -141,16 +152,16 @@ module Produce
|
|
|
141
152
|
if on
|
|
142
153
|
case options.icloud
|
|
143
154
|
when "legacy"
|
|
144
|
-
app.update_service(Spaceship.app_service.
|
|
155
|
+
app.update_service(Spaceship.app_service.cloud.on)
|
|
145
156
|
app.update_service(Spaceship.app_service.cloud_kit.xcode5_compatible)
|
|
146
157
|
when "cloudkit"
|
|
147
|
-
app.update_service(Spaceship.app_service.
|
|
158
|
+
app.update_service(Spaceship.app_service.cloud.on)
|
|
148
159
|
app.update_service(Spaceship.app_service.cloud_kit.cloud_kit)
|
|
149
160
|
else
|
|
150
161
|
UI.user_error!("Unknown service '#{options.icloud}'. Valid values: 'legacy', 'cloudkit'")
|
|
151
162
|
end
|
|
152
163
|
else
|
|
153
|
-
app.update_service(Spaceship.app_service.
|
|
164
|
+
app.update_service(Spaceship.app_service.cloud.off)
|
|
154
165
|
end
|
|
155
166
|
end
|
|
156
167
|
|
|
@@ -174,6 +185,17 @@ module Produce
|
|
|
174
185
|
end
|
|
175
186
|
end
|
|
176
187
|
|
|
188
|
+
if options.personal_vpn
|
|
189
|
+
UI.message("\tPersonal VPN")
|
|
190
|
+
|
|
191
|
+
if on
|
|
192
|
+
app.update_service(Spaceship.app_service.personal_vpn.on)
|
|
193
|
+
else
|
|
194
|
+
app.update_service(Spaceship.app_service.personal_vpn.off)
|
|
195
|
+
end
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
# deprecated
|
|
177
199
|
if options.passbook
|
|
178
200
|
UI.message("\tPassbook")
|
|
179
201
|
|
|
@@ -204,6 +226,7 @@ module Produce
|
|
|
204
226
|
end
|
|
205
227
|
end
|
|
206
228
|
|
|
229
|
+
# deprecated
|
|
207
230
|
if options.vpn_conf
|
|
208
231
|
UI.message("\tVPN Configuration")
|
|
209
232
|
|
|
@@ -80,22 +80,14 @@ module Snapshot
|
|
|
80
80
|
|
|
81
81
|
private
|
|
82
82
|
|
|
83
|
-
# Creates an alias for require to prevent `rubocop/require_tools`
|
|
84
|
-
# from failing. This eventually change it when `simctl` doesn't
|
|
85
|
-
# execute shell commands at the top-level anymore
|
|
86
|
-
#
|
|
87
|
-
# Issue: https://github.com/fastlane/fastlane/issues/12071
|
|
88
|
-
alias silence_the_horrible_require_checker require
|
|
89
|
-
|
|
90
83
|
def get_device_type_with_simctl(device_names)
|
|
91
84
|
return device_names if Helper.test?
|
|
92
85
|
|
|
93
|
-
|
|
86
|
+
require("simctl")
|
|
94
87
|
|
|
95
88
|
# Gets actual simctl device type from device name
|
|
96
89
|
return device_names.map do |device_name|
|
|
97
|
-
|
|
98
|
-
device = SimCtl.device(name: device_name) # rubocop:disable Require/MissingRequireStatement
|
|
90
|
+
device = SimCtl.device(name: device_name)
|
|
99
91
|
if device
|
|
100
92
|
device.devicetype.name
|
|
101
93
|
end
|
|
@@ -47,19 +47,21 @@ module Spaceship
|
|
|
47
47
|
GameCenter = AppService.new_service("gameCenter")
|
|
48
48
|
HealthKit = AppService.new_service("HK421J6T7P")
|
|
49
49
|
HomeKit = AppService.new_service("homeKit")
|
|
50
|
-
|
|
50
|
+
Hotspot = AppService.new_service("HSC639VEI8")
|
|
51
51
|
Cloud = AppService.new_service("iCloud")
|
|
52
52
|
CloudKit = AppService.new_service("cloudKitVersion", values: { xcode5_compatible: 1, cloud_kit: 2 })
|
|
53
53
|
InAppPurchase = AppService.new_service("inAppPurchase")
|
|
54
54
|
InterAppAudio = AppService.new_service("IAD53UNK2F")
|
|
55
|
+
Multipath = AppService.new_service("MP49FN762P")
|
|
56
|
+
NetworkExtension = AppService.new_service("NWEXT04537")
|
|
57
|
+
NFCTagReading = AppService.new_service("NFCTRMAY17")
|
|
58
|
+
PersonalVPN = AppService.new_service("V66P55NK2I")
|
|
55
59
|
Passbook = AppService.new_service("pass")
|
|
56
60
|
PushNotification = AppService.new_service("push")
|
|
57
61
|
SiriKit = AppService.new_service("SI015DKUHP")
|
|
58
62
|
VPNConfiguration = AppService.new_service("V66P55NK2I")
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
Multipath = AppService.new_service("MP49FN762P")
|
|
62
|
-
NFCTagReading = AppService.new_service("NFCTRMAY17")
|
|
63
|
+
Wallet = AppService.new_service("passbook")
|
|
64
|
+
WirelessAccessory = AppService.new_service("WC421J6T7P")
|
|
63
65
|
|
|
64
66
|
constants.each do |c|
|
|
65
67
|
name = c.to_s
|
|
@@ -115,6 +115,13 @@ module Spaceship
|
|
|
115
115
|
handle_response(response)
|
|
116
116
|
end
|
|
117
117
|
|
|
118
|
+
def delete_group_for_app(app_id: nil, group_id: nil)
|
|
119
|
+
assert_required_params(__method__, binding)
|
|
120
|
+
url = "providers/#{team_id}/apps/#{app_id}/groups/#{group_id}"
|
|
121
|
+
response = request(:delete, url)
|
|
122
|
+
handle_response(response)
|
|
123
|
+
end
|
|
124
|
+
|
|
118
125
|
def add_group_to_build(app_id: nil, group_id: nil, build_id: nil)
|
|
119
126
|
assert_required_params(__method__, binding)
|
|
120
127
|
|
|
@@ -30,6 +30,11 @@ module Spaceship::TestFlight
|
|
|
30
30
|
self.new(data)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
+
def self.delete!(app_id: nil, group_name: nil)
|
|
34
|
+
group = self.find(app_id: app_id, group_name: group_name)
|
|
35
|
+
client.delete_group_for_app(app_id: app_id, group_id: group.id)
|
|
36
|
+
end
|
|
37
|
+
|
|
33
38
|
def self.all(app_id: nil)
|
|
34
39
|
groups = client.get_groups(app_id: app_id)
|
|
35
40
|
groups.map { |g| self.new(g) }
|
metadata
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fastlane
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.89.0
|
|
4
|
+
version: 2.89.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
8
|
-
- Helmut Januschka
|
|
9
|
-
- Joshua Liebowitz
|
|
10
|
-
- Jan Piotrowski
|
|
7
|
+
- Manu Wallner
|
|
11
8
|
- Jorge Revuelta H
|
|
12
|
-
- Maksym Grebenets
|
|
13
|
-
- Danielle Tomlinson
|
|
14
9
|
- Olivier Halligon
|
|
15
|
-
- Fumiya Nakamura
|
|
16
|
-
- Felix Krause
|
|
17
|
-
- Manu Wallner
|
|
18
|
-
- Andrew McBurney
|
|
19
10
|
- Matthew Ellis
|
|
20
|
-
- Jimmy Dee
|
|
21
|
-
- Iulian Onofrei
|
|
22
|
-
- Stefan Natchev
|
|
23
11
|
- Jérôme Lacoste
|
|
12
|
+
- Danielle Tomlinson
|
|
13
|
+
- Helmut Januschka
|
|
14
|
+
- Felix Krause
|
|
15
|
+
- Joshua Liebowitz
|
|
24
16
|
- Josh Holtz
|
|
25
|
-
-
|
|
17
|
+
- Iulian Onofrei
|
|
18
|
+
- Jan Piotrowski
|
|
26
19
|
- Aaron Brager
|
|
20
|
+
- Jimmy Dee
|
|
21
|
+
- Luka Mirosevic
|
|
22
|
+
- Kohki Miki
|
|
23
|
+
- Stefan Natchev
|
|
24
|
+
- Maksym Grebenets
|
|
25
|
+
- Fumiya Nakamura
|
|
26
|
+
- Andrew McBurney
|
|
27
27
|
autorequire:
|
|
28
28
|
bindir: bin
|
|
29
29
|
cert_chain: []
|
|
30
|
-
date: 2018-04-
|
|
30
|
+
date: 2018-04-03 00:00:00.000000000 Z
|
|
31
31
|
dependencies:
|
|
32
32
|
- !ruby/object:Gem::Dependency
|
|
33
33
|
name: slack-notifier
|
|
@@ -597,14 +597,14 @@ dependencies:
|
|
|
597
597
|
requirements:
|
|
598
598
|
- - "~>"
|
|
599
599
|
- !ruby/object:Gem::Version
|
|
600
|
-
version:
|
|
600
|
+
version: 1.6.3
|
|
601
601
|
type: :runtime
|
|
602
602
|
prerelease: false
|
|
603
603
|
version_requirements: !ruby/object:Gem::Requirement
|
|
604
604
|
requirements:
|
|
605
605
|
- - "~>"
|
|
606
606
|
- !ruby/object:Gem::Version
|
|
607
|
-
version:
|
|
607
|
+
version: 1.6.3
|
|
608
608
|
- !ruby/object:Gem::Dependency
|
|
609
609
|
name: google-api-client
|
|
610
610
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -1622,24 +1622,24 @@ metadata:
|
|
|
1622
1622
|
post_install_message:
|
|
1623
1623
|
rdoc_options: []
|
|
1624
1624
|
require_paths:
|
|
1625
|
-
-
|
|
1626
|
-
- fastlane/lib
|
|
1625
|
+
- credentials_manager/lib
|
|
1627
1626
|
- pem/lib
|
|
1627
|
+
- snapshot/lib
|
|
1628
|
+
- frameit/lib
|
|
1629
|
+
- match/lib
|
|
1628
1630
|
- fastlane_core/lib
|
|
1629
|
-
-
|
|
1631
|
+
- deliver/lib
|
|
1632
|
+
- scan/lib
|
|
1633
|
+
- supply/lib
|
|
1630
1634
|
- cert/lib
|
|
1631
|
-
-
|
|
1632
|
-
- snapshot/lib
|
|
1635
|
+
- fastlane/lib
|
|
1633
1636
|
- spaceship/lib
|
|
1634
|
-
-
|
|
1635
|
-
- sigh/lib
|
|
1636
|
-
- deliver/lib
|
|
1637
|
+
- pilot/lib
|
|
1637
1638
|
- gym/lib
|
|
1639
|
+
- precheck/lib
|
|
1638
1640
|
- screengrab/lib
|
|
1641
|
+
- sigh/lib
|
|
1639
1642
|
- produce/lib
|
|
1640
|
-
- scan/lib
|
|
1641
|
-
- supply/lib
|
|
1642
|
-
- frameit/lib
|
|
1643
1643
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
1644
1644
|
requirements:
|
|
1645
1645
|
- - ">="
|
|
@@ -1647,12 +1647,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1647
1647
|
version: 2.0.0
|
|
1648
1648
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1649
1649
|
requirements:
|
|
1650
|
-
- - "
|
|
1650
|
+
- - ">="
|
|
1651
1651
|
- !ruby/object:Gem::Version
|
|
1652
|
-
version:
|
|
1652
|
+
version: '0'
|
|
1653
1653
|
requirements: []
|
|
1654
1654
|
rubyforge_project:
|
|
1655
|
-
rubygems_version: 2.5.2.
|
|
1655
|
+
rubygems_version: 2.5.2.2
|
|
1656
1656
|
signing_key:
|
|
1657
1657
|
specification_version: 4
|
|
1658
1658
|
summary: The easiest way to automate beta deployments and releases for your iOS and
|