fastlane 2.103.1 → 2.104.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 +80 -80
- data/deliver/lib/deliver/submit_for_review.rb +17 -3
- data/fastlane/lib/assets/Actions.md.erb +4 -3
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +1 -14
- data/fastlane/lib/fastlane/actions/run_tests.rb +9 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +5 -1
- 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/ScanfileProtocol.swift +3 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane_core/lib/fastlane_core/.command_executor.rb.swp +0 -0
- data/fastlane_core/lib/fastlane_core/command_executor.rb +3 -0
- data/fastlane_core/lib/fastlane_core/fastlane_pty.rb +21 -0
- data/fastlane_core/lib/fastlane_core/helper.rb +9 -3
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +2 -0
- data/scan/lib/scan/detect_values.rb +22 -16
- data/scan/lib/scan/options.rb +5 -0
- data/scan/lib/scan/runner.rb +1 -1
- metadata +18 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ea532950502bd5448c144045cec72c59174c2935
|
|
4
|
+
data.tar.gz: f0005241440286c16af2d5ca3ce6895a0c0bafbe
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '0818efee4e51ddc9c23988da1448596aff4481650ecc381d61536be9d3d947694b05ff2c4450aa49f65e7c442a83731ac1fad55da3060f8a180764c7b5922f4e'
|
|
7
|
+
data.tar.gz: 1e196366b4e2579baa59c17c55307b02600b76d942562a39849c1ee69512ad494d9f844dcde3e11dfade0872a01978f324d526f03c8ac40f7e5433e29c79e9ae
|
data/README.md
CHANGED
|
@@ -32,131 +32,131 @@ 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='
|
|
36
|
-
<a href='https://github.com/
|
|
37
|
-
<img src='https://github.com/
|
|
35
|
+
<td id='maksym-grebenets'>
|
|
36
|
+
<a href='https://github.com/mgrebenets'>
|
|
37
|
+
<img src='https://github.com/mgrebenets.png?size=140'>
|
|
38
38
|
</a>
|
|
39
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
39
|
+
<h4 align='center'><a href='https://twitter.com/mgrebenets'>Maksym Grebenets</a></h4>
|
|
40
40
|
</td>
|
|
41
|
-
<td id='
|
|
42
|
-
<a href='https://github.com/
|
|
43
|
-
<img src='https://github.com/
|
|
41
|
+
<td id='matthew-ellis'>
|
|
42
|
+
<a href='https://github.com/matthewellis'>
|
|
43
|
+
<img src='https://github.com/matthewellis.png?size=140'>
|
|
44
44
|
</a>
|
|
45
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
45
|
+
<h4 align='center'><a href='https://twitter.com/mellis1995'>Matthew Ellis</a></h4>
|
|
46
46
|
</td>
|
|
47
|
-
<td id='
|
|
48
|
-
<a href='https://github.com/
|
|
49
|
-
<img src='https://github.com/
|
|
47
|
+
<td id='jimmy-dee'>
|
|
48
|
+
<a href='https://github.com/jdee'>
|
|
49
|
+
<img src='https://github.com/jdee.png?size=140'>
|
|
50
50
|
</a>
|
|
51
|
-
<h4 align='center'
|
|
51
|
+
<h4 align='center'>Jimmy Dee</h4>
|
|
52
52
|
</td>
|
|
53
|
-
<td id='
|
|
54
|
-
<a href='https://github.com/
|
|
55
|
-
<img src='https://github.com/
|
|
53
|
+
<td id='josh-holtz'>
|
|
54
|
+
<a href='https://github.com/joshdholtz'>
|
|
55
|
+
<img src='https://github.com/joshdholtz.png?size=140'>
|
|
56
56
|
</a>
|
|
57
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
57
|
+
<h4 align='center'><a href='https://twitter.com/joshdholtz'>Josh Holtz</a></h4>
|
|
58
58
|
</td>
|
|
59
|
-
<td id='
|
|
60
|
-
<a href='https://github.com/
|
|
61
|
-
<img src='https://github.com/
|
|
59
|
+
<td id='joshua-liebowitz'>
|
|
60
|
+
<a href='https://github.com/taquitos'>
|
|
61
|
+
<img src='https://github.com/taquitos.png?size=140'>
|
|
62
62
|
</a>
|
|
63
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
63
|
+
<h4 align='center'><a href='https://twitter.com/taquitos'>Joshua Liebowitz</a></h4>
|
|
64
64
|
</td>
|
|
65
65
|
</tr>
|
|
66
66
|
<tr>
|
|
67
|
-
<td id='iulian-onofrei'>
|
|
68
|
-
<a href='https://github.com/revolter'>
|
|
69
|
-
<img src='https://github.com/revolter.png?size=140'>
|
|
70
|
-
</a>
|
|
71
|
-
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
72
|
-
</td>
|
|
73
|
-
<td id='andrew-mcburney'>
|
|
74
|
-
<a href='https://github.com/AndrewMcBurney'>
|
|
75
|
-
<img src='https://github.com/AndrewMcBurney.png?size=140'>
|
|
76
|
-
</a>
|
|
77
|
-
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
78
|
-
</td>
|
|
79
67
|
<td id='felix-krause'>
|
|
80
68
|
<a href='https://github.com/KrauseFx'>
|
|
81
69
|
<img src='https://github.com/KrauseFx.png?size=140'>
|
|
82
70
|
</a>
|
|
83
71
|
<h4 align='center'><a href='https://twitter.com/KrauseFx'>Felix Krause</a></h4>
|
|
84
72
|
</td>
|
|
85
|
-
<td id='
|
|
86
|
-
<a href='https://github.com/
|
|
87
|
-
<img src='https://github.com/
|
|
73
|
+
<td id='stefan-natchev'>
|
|
74
|
+
<a href='https://github.com/snatchev'>
|
|
75
|
+
<img src='https://github.com/snatchev.png?size=140'>
|
|
88
76
|
</a>
|
|
89
|
-
<h4 align='center'>
|
|
77
|
+
<h4 align='center'><a href='https://twitter.com/snatchev'>Stefan Natchev</a></h4>
|
|
90
78
|
</td>
|
|
91
|
-
<td id='
|
|
92
|
-
<a href='https://github.com/
|
|
93
|
-
<img src='https://github.com/
|
|
79
|
+
<td id='helmut-januschka'>
|
|
80
|
+
<a href='https://github.com/hjanuschka'>
|
|
81
|
+
<img src='https://github.com/hjanuschka.png?size=140'>
|
|
94
82
|
</a>
|
|
95
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
83
|
+
<h4 align='center'><a href='https://twitter.com/hjanuschka'>Helmut Januschka</a></h4>
|
|
84
|
+
</td>
|
|
85
|
+
<td id='fumiya-nakamura'>
|
|
86
|
+
<a href='https://github.com/nafu'>
|
|
87
|
+
<img src='https://github.com/nafu.png?size=140'>
|
|
88
|
+
</a>
|
|
89
|
+
<h4 align='center'><a href='https://twitter.com/nafu003'>Fumiya Nakamura</a></h4>
|
|
90
|
+
</td>
|
|
91
|
+
<td id='jorge-revuelta-h'>
|
|
92
|
+
<a href='https://github.com/minuscorp'>
|
|
93
|
+
<img src='https://github.com/minuscorp.png?size=140'>
|
|
94
|
+
</a>
|
|
95
|
+
<h4 align='center'><a href='https://twitter.com/minuscorp'>Jorge Revuelta H</a></h4>
|
|
96
96
|
</td>
|
|
97
97
|
</tr>
|
|
98
98
|
<tr>
|
|
99
|
-
<td id='
|
|
100
|
-
<a href='https://github.com/
|
|
101
|
-
<img src='https://github.com/
|
|
99
|
+
<td id='olivier-halligon'>
|
|
100
|
+
<a href='https://github.com/AliSoftware'>
|
|
101
|
+
<img src='https://github.com/AliSoftware.png?size=140'>
|
|
102
102
|
</a>
|
|
103
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
103
|
+
<h4 align='center'><a href='https://twitter.com/aligatr'>Olivier Halligon</a></h4>
|
|
104
104
|
</td>
|
|
105
|
-
<td id='
|
|
106
|
-
<a href='https://github.com/
|
|
107
|
-
<img src='https://github.com/
|
|
105
|
+
<td id='jan-piotrowski'>
|
|
106
|
+
<a href='https://github.com/janpio'>
|
|
107
|
+
<img src='https://github.com/janpio.png?size=140'>
|
|
108
108
|
</a>
|
|
109
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
109
|
+
<h4 align='center'><a href='https://twitter.com/Sujan'>Jan Piotrowski</a></h4>
|
|
110
110
|
</td>
|
|
111
|
-
<td id='
|
|
112
|
-
<a href='https://github.com/
|
|
113
|
-
<img src='https://github.com/
|
|
111
|
+
<td id='jérôme-lacoste'>
|
|
112
|
+
<a href='https://github.com/lacostej'>
|
|
113
|
+
<img src='https://github.com/lacostej.png?size=140'>
|
|
114
114
|
</a>
|
|
115
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
115
|
+
<h4 align='center'><a href='https://twitter.com/lacostej'>Jérôme Lacoste</a></h4>
|
|
116
116
|
</td>
|
|
117
|
-
<td id='
|
|
118
|
-
<a href='https://github.com/
|
|
119
|
-
<img src='https://github.com/
|
|
117
|
+
<td id='andrew-mcburney'>
|
|
118
|
+
<a href='https://github.com/AndrewMcBurney'>
|
|
119
|
+
<img src='https://github.com/AndrewMcBurney.png?size=140'>
|
|
120
120
|
</a>
|
|
121
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
121
|
+
<h4 align='center'><a href='https://twitter.com/armcburney'>Andrew McBurney</a></h4>
|
|
122
122
|
</td>
|
|
123
|
-
<td id='
|
|
124
|
-
<a href='https://github.com/
|
|
125
|
-
<img src='https://github.com/
|
|
123
|
+
<td id='iulian-onofrei'>
|
|
124
|
+
<a href='https://github.com/revolter'>
|
|
125
|
+
<img src='https://github.com/revolter.png?size=140'>
|
|
126
126
|
</a>
|
|
127
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
127
|
+
<h4 align='center'><a href='https://twitter.com/Revolt666'>Iulian Onofrei</a></h4>
|
|
128
128
|
</td>
|
|
129
129
|
</tr>
|
|
130
130
|
<tr>
|
|
131
|
-
<td id='
|
|
132
|
-
<a href='https://github.com/
|
|
133
|
-
<img src='https://github.com/
|
|
131
|
+
<td id='luka-mirosevic'>
|
|
132
|
+
<a href='https://github.com/lmirosevic'>
|
|
133
|
+
<img src='https://github.com/lmirosevic.png?size=140'>
|
|
134
134
|
</a>
|
|
135
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
135
|
+
<h4 align='center'><a href='https://twitter.com/lmirosevic'>Luka Mirosevic</a></h4>
|
|
136
136
|
</td>
|
|
137
|
-
<td id='
|
|
138
|
-
<a href='https://github.com/
|
|
139
|
-
<img src='https://github.com/
|
|
137
|
+
<td id='manu-wallner'>
|
|
138
|
+
<a href='https://github.com/milch'>
|
|
139
|
+
<img src='https://github.com/milch.png?size=140'>
|
|
140
140
|
</a>
|
|
141
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
141
|
+
<h4 align='center'><a href='https://twitter.com/acrooow'>Manu Wallner</a></h4>
|
|
142
142
|
</td>
|
|
143
|
-
<td id='
|
|
144
|
-
<a href='https://github.com/
|
|
145
|
-
<img src='https://github.com/
|
|
143
|
+
<td id='aaron-brager'>
|
|
144
|
+
<a href='https://github.com/getaaron'>
|
|
145
|
+
<img src='https://github.com/getaaron.png?size=140'>
|
|
146
146
|
</a>
|
|
147
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
147
|
+
<h4 align='center'><a href='https://twitter.com/getaaron'>Aaron Brager</a></h4>
|
|
148
148
|
</td>
|
|
149
|
-
<td id='
|
|
150
|
-
<a href='https://github.com/
|
|
151
|
-
<img src='https://github.com/
|
|
149
|
+
<td id='danielle-tomlinson'>
|
|
150
|
+
<a href='https://github.com/DanToml'>
|
|
151
|
+
<img src='https://github.com/DanToml.png?size=140'>
|
|
152
152
|
</a>
|
|
153
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
153
|
+
<h4 align='center'><a href='https://twitter.com/DanToml'>Danielle Tomlinson</a></h4>
|
|
154
154
|
</td>
|
|
155
|
-
<td id='
|
|
156
|
-
<a href='https://github.com/
|
|
157
|
-
<img src='https://github.com/
|
|
155
|
+
<td id='kohki-miki'>
|
|
156
|
+
<a href='https://github.com/giginet'>
|
|
157
|
+
<img src='https://github.com/giginet.png?size=140'>
|
|
158
158
|
</a>
|
|
159
|
-
<h4 align='center'><a href='https://twitter.com/
|
|
159
|
+
<h4 align='center'><a href='https://twitter.com/giginet'>Kohki Miki</a></h4>
|
|
160
160
|
</td>
|
|
161
161
|
</tr>
|
|
162
162
|
</table>
|
|
@@ -55,12 +55,26 @@ module Deliver
|
|
|
55
55
|
UI.user_error!("Could not find app with app identifier") unless app
|
|
56
56
|
|
|
57
57
|
start = Time.now
|
|
58
|
+
build = nil
|
|
58
59
|
|
|
59
60
|
loop do
|
|
60
|
-
|
|
61
|
-
|
|
61
|
+
latest_build = find_build(app.latest_version.candidate_builds)
|
|
62
|
+
|
|
63
|
+
# Sometimes latest build will disappear and a different build would get selected
|
|
64
|
+
# Only set build if no latest build found or if same build versions as previously fetched build
|
|
65
|
+
# Issue: https://github.com/fastlane/fastlane/issues/10945
|
|
66
|
+
if build.nil? || (latest_build && latest_build.train_version == build.train_version && latest_build.build_version == build.build_version)
|
|
67
|
+
build = latest_build
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
return build if build && build.processing == false
|
|
71
|
+
|
|
72
|
+
if build
|
|
73
|
+
UI.message("Waiting App Store Connect processing for build #{build.train_version} (#{build.build_version})... this might take a while...")
|
|
74
|
+
else
|
|
75
|
+
UI.message("Waiting App Store Connect processing for build... this might take a while...")
|
|
76
|
+
end
|
|
62
77
|
|
|
63
|
-
UI.message("Waiting App Store Connect processing for build #{build.train_version} (#{build.build_version})... this might take a while...")
|
|
64
78
|
if (Time.now - start) > (60 * 5)
|
|
65
79
|
UI.message("")
|
|
66
80
|
UI.message("You can tweet: \"App Store Connect #iosprocessingtime #{((Time.now - start) / 60).round} minutes\"")
|
|
@@ -3,7 +3,7 @@ This file is auto-generated and will be re-generated every time the docs are upd
|
|
|
3
3
|
To modify it, go to its source at https://github.com/fastlane/fastlane/blob/master/fastlane/lib/assets/Actions.md.erb
|
|
4
4
|
-->
|
|
5
5
|
|
|
6
|
-
{!docs/setup-fastlane-header.md!}
|
|
6
|
+
{!docs/includes/setup-fastlane-header.md!}
|
|
7
7
|
|
|
8
8
|
# fastlane actions
|
|
9
9
|
|
|
@@ -22,12 +22,13 @@ You can import another `Fastfile` by using the `import` action. This is useful i
|
|
|
22
22
|
import './path/to/other/Fastfile'
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
For _fastlane_ plugins, check out the [available plugins](
|
|
25
|
+
For _fastlane_ plugins, check out the [available plugins](/plugins/available-plugins/) page.
|
|
26
|
+
If you want to create your own action, check out the [local actions](/create-action/#local-actions) page.
|
|
26
27
|
|
|
27
28
|
<%- @categories.each do |category, actions| -%>
|
|
28
29
|
- [<%= category %>](#<%= category.gsub(" ", "-").downcase %>)
|
|
29
30
|
<%- end -%>
|
|
30
|
-
- [Plugins](
|
|
31
|
+
- [Plugins](/plugins/available-plugins/)
|
|
31
32
|
|
|
32
33
|
<%- @categories.each do |category, actions| %>
|
|
33
34
|
# <%= category %>
|
|
@@ -33,20 +33,7 @@ _supply_ uploads app metadata, screenshots, binaries, and app bundles to Google
|
|
|
33
33
|
|
|
34
34
|
Setup consists of setting up your Google Developers Service Account
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
1. Select **Settings** tab, followed by the **API access** tab
|
|
38
|
-
1. Click the **Create Service Account** button and follow the **Google API Console** link in the dialog
|
|
39
|
-
1. Click the **Create Service account** button at the top of the developers console screen
|
|
40
|
-
1. Provide a name for the service account
|
|
41
|
-
1. Click **Select a role** and choose **Service Accounts > Service Account User**
|
|
42
|
-
1. Check the **Furnish a new private key** checkbox
|
|
43
|
-
1. Select **JSON** as the Key type
|
|
44
|
-
1. Click **Create** to close the dialog
|
|
45
|
-
1. Make a note of the file name of the JSON file downloaded to your computer
|
|
46
|
-
1. Back on the Google Play developer console, click **Done** to close the dialog
|
|
47
|
-
1. Click on **Grant Access** for the newly added service account
|
|
48
|
-
1. Choose **Release Manager** from the **Role** dropdown
|
|
49
|
-
1. Click **Add user** to close the dialog
|
|
36
|
+
{!docs/includes/google-credentials.md!}
|
|
50
37
|
|
|
51
38
|
### Migrating Google credential format (from .p12 key file to .json)
|
|
52
39
|
|
|
@@ -77,7 +77,15 @@ module Fastlane
|
|
|
77
77
|
private_class_method
|
|
78
78
|
|
|
79
79
|
def self.test_summary_filenames(derived_data_path)
|
|
80
|
-
|
|
80
|
+
files = []
|
|
81
|
+
|
|
82
|
+
# Xcode < 10
|
|
83
|
+
files += Dir["#{derived_data_path}/**/Logs/Test/*TestSummaries.plist"]
|
|
84
|
+
|
|
85
|
+
# Xcode 10
|
|
86
|
+
files += Dir["#{derived_data_path}/**/Logs/Test/*.xcresult/TestSummaries.plist"]
|
|
87
|
+
|
|
88
|
+
return files
|
|
81
89
|
end
|
|
82
90
|
|
|
83
91
|
def self.example_code
|
|
@@ -2602,6 +2602,7 @@ func runTests(workspace: String? = nil,
|
|
|
2602
2602
|
device: String? = nil,
|
|
2603
2603
|
toolchain: String? = nil,
|
|
2604
2604
|
devices: [String]? = nil,
|
|
2605
|
+
skipDetectDevices: Bool = false,
|
|
2605
2606
|
scheme: String? = nil,
|
|
2606
2607
|
clean: Bool = false,
|
|
2607
2608
|
codeCoverage: Bool? = nil,
|
|
@@ -2644,6 +2645,7 @@ func runTests(workspace: String? = nil,
|
|
|
2644
2645
|
RubyCommand.Argument(name: "device", value: device),
|
|
2645
2646
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
|
2646
2647
|
RubyCommand.Argument(name: "devices", value: devices),
|
|
2648
|
+
RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
|
|
2647
2649
|
RubyCommand.Argument(name: "scheme", value: scheme),
|
|
2648
2650
|
RubyCommand.Argument(name: "clean", value: clean),
|
|
2649
2651
|
RubyCommand.Argument(name: "code_coverage", value: codeCoverage),
|
|
@@ -2728,6 +2730,7 @@ func scan(workspace: String? = scanfile.workspace,
|
|
|
2728
2730
|
device: String? = scanfile.device,
|
|
2729
2731
|
toolchain: String? = scanfile.toolchain,
|
|
2730
2732
|
devices: [String]? = scanfile.devices,
|
|
2733
|
+
skipDetectDevices: Bool = scanfile.skipDetectDevices,
|
|
2731
2734
|
scheme: String? = scanfile.scheme,
|
|
2732
2735
|
clean: Bool = scanfile.clean,
|
|
2733
2736
|
codeCoverage: Bool? = scanfile.codeCoverage,
|
|
@@ -2770,6 +2773,7 @@ func scan(workspace: String? = scanfile.workspace,
|
|
|
2770
2773
|
RubyCommand.Argument(name: "device", value: device),
|
|
2771
2774
|
RubyCommand.Argument(name: "toolchain", value: toolchain),
|
|
2772
2775
|
RubyCommand.Argument(name: "devices", value: devices),
|
|
2776
|
+
RubyCommand.Argument(name: "skip_detect_devices", value: skipDetectDevices),
|
|
2773
2777
|
RubyCommand.Argument(name: "scheme", value: scheme),
|
|
2774
2778
|
RubyCommand.Argument(name: "clean", value: clean),
|
|
2775
2779
|
RubyCommand.Argument(name: "code_coverage", value: codeCoverage),
|
|
@@ -4073,4 +4077,4 @@ let screengrabfile: Screengrabfile = Screengrabfile()
|
|
|
4073
4077
|
let snapshotfile: Snapshotfile = Snapshotfile()
|
|
4074
4078
|
// Please don't remove the lines below
|
|
4075
4079
|
// They are used to detect outdated files
|
|
4076
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
4080
|
+
// FastlaneRunnerAPIVersion [0.9.28]
|
|
@@ -4,6 +4,7 @@ protocol ScanfileProtocol: class {
|
|
|
4
4
|
var device: String? { get }
|
|
5
5
|
var toolchain: String? { get }
|
|
6
6
|
var devices: [String]? { get }
|
|
7
|
+
var skipDetectDevices: Bool { get }
|
|
7
8
|
var scheme: String? { get }
|
|
8
9
|
var clean: Bool { get }
|
|
9
10
|
var codeCoverage: Bool? { get }
|
|
@@ -49,6 +50,7 @@ extension ScanfileProtocol {
|
|
|
49
50
|
var device: String? { return nil }
|
|
50
51
|
var toolchain: String? { return nil }
|
|
51
52
|
var devices: [String]? { return nil }
|
|
53
|
+
var skipDetectDevices: Bool { return false }
|
|
52
54
|
var scheme: String? { return nil }
|
|
53
55
|
var clean: Bool { return false }
|
|
54
56
|
var codeCoverage: Bool? { return nil }
|
|
@@ -90,4 +92,4 @@ extension ScanfileProtocol {
|
|
|
90
92
|
|
|
91
93
|
// Please don't remove the lines below
|
|
92
94
|
// They are used to detect outdated files
|
|
93
|
-
// FastlaneRunnerAPIVersion [0.9.
|
|
95
|
+
// FastlaneRunnerAPIVersion [0.9.4]
|
|
Binary file
|
|
@@ -64,6 +64,9 @@ module FastlaneCore
|
|
|
64
64
|
end
|
|
65
65
|
end
|
|
66
66
|
rescue => ex
|
|
67
|
+
# FastlanePty adds exit_status on to StandardError so every error will have a status code
|
|
68
|
+
status = ex.exit_status
|
|
69
|
+
|
|
67
70
|
# This could happen when the environment is wrong:
|
|
68
71
|
# > invalid byte sequence in US-ASCII (ArgumentError)
|
|
69
72
|
output << ex.to_s
|
|
@@ -1,7 +1,23 @@
|
|
|
1
1
|
# Source: Mix of https://github.com/fastlane/fastlane/pull/7202/files,
|
|
2
2
|
# https://github.com/fastlane/fastlane/pull/11384#issuecomment-356084518 and
|
|
3
3
|
# https://github.com/DragonBox/u3d/blob/59e471ad78ac00cb629f479dbe386c5ad2dc5075/lib/u3d_core/command_runner.rb#L88-L96
|
|
4
|
+
|
|
5
|
+
class StandardError
|
|
6
|
+
def exit_status
|
|
7
|
+
return -1
|
|
8
|
+
end
|
|
9
|
+
end
|
|
10
|
+
|
|
4
11
|
module FastlaneCore
|
|
12
|
+
class FastlanePtyError < StandardError
|
|
13
|
+
attr_reader :exit_status
|
|
14
|
+
def initialize(e, exit_status)
|
|
15
|
+
super(e)
|
|
16
|
+
set_backtrace(e.backtrace) if e
|
|
17
|
+
@exit_status = exit_status
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
5
21
|
class FastlanePty
|
|
6
22
|
def self.spawn(command)
|
|
7
23
|
require 'pty'
|
|
@@ -31,6 +47,11 @@ module FastlaneCore
|
|
|
31
47
|
command_stdout.close
|
|
32
48
|
p.value.exitstatus
|
|
33
49
|
end
|
|
50
|
+
rescue StandardError => e
|
|
51
|
+
# Wrapping any error in FastlanePtyError to allow
|
|
52
|
+
# callers to see and use $?.exitstatus that
|
|
53
|
+
# would usually get returned
|
|
54
|
+
raise FastlanePtyError.new(e, $?.exitstatus)
|
|
34
55
|
end
|
|
35
56
|
end
|
|
36
57
|
end
|
|
@@ -279,14 +279,20 @@ module FastlaneCore
|
|
|
279
279
|
end
|
|
280
280
|
|
|
281
281
|
# Zips directory
|
|
282
|
-
def self.zip_directory(path, output_path, contents_only: false, print: true)
|
|
282
|
+
def self.zip_directory(path, output_path, contents_only: false, overwrite: false, print: true)
|
|
283
|
+
if overwrite
|
|
284
|
+
overwrite_command = " && rm -f '#{output_path}'"
|
|
285
|
+
else
|
|
286
|
+
overwrite_command = ""
|
|
287
|
+
end
|
|
288
|
+
|
|
283
289
|
if contents_only
|
|
284
|
-
command = "cd '#{path}' && zip -r '#{output_path}' *"
|
|
290
|
+
command = "cd '#{path}'#{overwrite_command} && zip -r '#{output_path}' *"
|
|
285
291
|
else
|
|
286
292
|
containing_path = File.expand_path("..", path)
|
|
287
293
|
contents_path = File.basename(path)
|
|
288
294
|
|
|
289
|
-
command = "cd '#{containing_path}' && zip -r '#{output_path}' '#{contents_path}'"
|
|
295
|
+
command = "cd '#{containing_path}'#{overwrite_command} && zip -r '#{output_path}' '#{contents_path}'"
|
|
290
296
|
end
|
|
291
297
|
|
|
292
298
|
UI.command(command) unless print
|
|
@@ -166,27 +166,33 @@ module Scan
|
|
|
166
166
|
set_of_simulators.to_a
|
|
167
167
|
end
|
|
168
168
|
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
unless Scan.config[:skip_detect_devices]
|
|
170
|
+
default = lambda do
|
|
171
|
+
UI.error("Couldn't find any matching simulators for '#{devices}' - falling back to default simulator") if (devices || []).count > 0
|
|
171
172
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
173
|
+
result = Array(
|
|
174
|
+
simulators
|
|
175
|
+
.select { |sim| sim.name == default_device_name }
|
|
176
|
+
.reverse # more efficient, because `simctl` prints higher versions first
|
|
177
|
+
.sort_by! { |sim| Gem::Version.new(sim.os_version) }
|
|
178
|
+
.last || simulators.first
|
|
179
|
+
)
|
|
179
180
|
|
|
180
|
-
|
|
181
|
+
UI.message("Found simulator \"#{result.first.name} (#{result.first.os_version})\"") if result.first
|
|
181
182
|
|
|
182
|
-
|
|
183
|
+
result
|
|
184
|
+
end
|
|
183
185
|
end
|
|
184
186
|
|
|
185
187
|
# grab the first unempty evaluated array
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
188
|
+
if default
|
|
189
|
+
Scan.devices = [matches, default].lazy.map { |x|
|
|
190
|
+
arr = x.call
|
|
191
|
+
arr unless arr.empty?
|
|
192
|
+
}.reject(&:nil?).first
|
|
193
|
+
else
|
|
194
|
+
Scan.devices = []
|
|
195
|
+
end
|
|
190
196
|
end
|
|
191
197
|
|
|
192
198
|
def self.min_xcode8?
|
|
@@ -205,7 +211,7 @@ module Scan
|
|
|
205
211
|
# building up the destination now
|
|
206
212
|
if Scan.devices && Scan.devices.count > 0
|
|
207
213
|
Scan.config[:destination] = Scan.devices.map { |d| "platform=#{d.os_type} Simulator,id=#{d.udid}" }
|
|
208
|
-
|
|
214
|
+
elsif Scan.project.mac_app?
|
|
209
215
|
Scan.config[:destination] = min_xcode8? ? ["platform=macOS"] : ["platform=OS X"]
|
|
210
216
|
end
|
|
211
217
|
end
|
data/scan/lib/scan/options.rb
CHANGED
|
@@ -61,6 +61,11 @@ module Scan
|
|
|
61
61
|
conflict_block: proc do |value|
|
|
62
62
|
UI.user_error!("You can't use 'device' and 'devices' options in one run")
|
|
63
63
|
end),
|
|
64
|
+
FastlaneCore::ConfigItem.new(key: :skip_detect_devices,
|
|
65
|
+
description: "Should skip auto detecting of devices if none were specified",
|
|
66
|
+
default_value: false,
|
|
67
|
+
type: Boolean,
|
|
68
|
+
optional: true),
|
|
64
69
|
FastlaneCore::ConfigItem.new(key: :scheme,
|
|
65
70
|
short_option: "-s",
|
|
66
71
|
optional: true,
|
data/scan/lib/scan/runner.rb
CHANGED
|
@@ -110,7 +110,7 @@ module Scan
|
|
|
110
110
|
|
|
111
111
|
# Zips build products and moves it to output directory
|
|
112
112
|
UI.message("Zipping build products")
|
|
113
|
-
FastlaneCore::Helper.zip_directory(path, output_path, contents_only: true, print: false)
|
|
113
|
+
FastlaneCore::Helper.zip_directory(path, output_path, contents_only: true, overwrite: true, print: false)
|
|
114
114
|
UI.message("Succesfully zipped build products: #{output_path}")
|
|
115
115
|
end
|
|
116
116
|
|
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.
|
|
4
|
+
version: 2.104.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
+
- Stefan Natchev
|
|
7
8
|
- Helmut Januschka
|
|
8
|
-
- Felix Krause
|
|
9
|
-
- Jimmy Dee
|
|
10
|
-
- Andrew McBurney
|
|
11
|
-
- Luka Mirosevic
|
|
12
|
-
- Iulian Onofrei
|
|
13
9
|
- Danielle Tomlinson
|
|
10
|
+
- Jérôme Lacoste
|
|
14
11
|
- Aaron Brager
|
|
15
|
-
- Jorge Revuelta H
|
|
16
|
-
- Stefan Natchev
|
|
17
|
-
- Josh Holtz
|
|
18
12
|
- Olivier Halligon
|
|
19
|
-
-
|
|
20
|
-
- Fumiya Nakamura
|
|
21
|
-
- Manu Wallner
|
|
22
|
-
- Jérôme Lacoste
|
|
13
|
+
- Iulian Onofrei
|
|
23
14
|
- Joshua Liebowitz
|
|
24
|
-
-
|
|
15
|
+
- Josh Holtz
|
|
16
|
+
- Manu Wallner
|
|
25
17
|
- Maksym Grebenets
|
|
18
|
+
- Jan Piotrowski
|
|
19
|
+
- Andrew McBurney
|
|
26
20
|
- Kohki Miki
|
|
21
|
+
- Fumiya Nakamura
|
|
22
|
+
- Felix Krause
|
|
23
|
+
- Jimmy Dee
|
|
24
|
+
- Luka Mirosevic
|
|
25
|
+
- Matthew Ellis
|
|
26
|
+
- Jorge Revuelta H
|
|
27
27
|
autorequire:
|
|
28
28
|
bindir: bin
|
|
29
29
|
cert_chain: []
|
|
30
|
-
date: 2018-09-
|
|
30
|
+
date: 2018-09-08 00:00:00.000000000 Z
|
|
31
31
|
dependencies:
|
|
32
32
|
- !ruby/object:Gem::Dependency
|
|
33
33
|
name: slack-notifier
|
|
@@ -475,7 +475,7 @@ dependencies:
|
|
|
475
475
|
requirements:
|
|
476
476
|
- - ">="
|
|
477
477
|
- !ruby/object:Gem::Version
|
|
478
|
-
version: 1.2.
|
|
478
|
+
version: 1.2.2
|
|
479
479
|
- - "<"
|
|
480
480
|
- !ruby/object:Gem::Version
|
|
481
481
|
version: 2.0.0
|
|
@@ -485,7 +485,7 @@ dependencies:
|
|
|
485
485
|
requirements:
|
|
486
486
|
- - ">="
|
|
487
487
|
- !ruby/object:Gem::Version
|
|
488
|
-
version: 1.2.
|
|
488
|
+
version: 1.2.2
|
|
489
489
|
- - "<"
|
|
490
490
|
- !ruby/object:Gem::Version
|
|
491
491
|
version: 2.0.0
|
|
@@ -1284,6 +1284,7 @@ files:
|
|
|
1284
1284
|
- fastlane_core/README.md
|
|
1285
1285
|
- fastlane_core/lib/assets/XMLTemplate.xml.erb
|
|
1286
1286
|
- fastlane_core/lib/fastlane_core.rb
|
|
1287
|
+
- fastlane_core/lib/fastlane_core/.command_executor.rb.swp
|
|
1287
1288
|
- fastlane_core/lib/fastlane_core/analytics/action_completion_context.rb
|
|
1288
1289
|
- fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb
|
|
1289
1290
|
- fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb
|