fastlane 1.62.0 → 1.63.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 +1 -1
- data/lib/assets/s3_html_template.erb +4 -4
- data/lib/assets/s3_plist_template.erb +2 -2
- data/lib/assets/s3_version_template.erb +2 -2
- data/lib/fastlane/actions/appaloosa.rb +47 -83
- data/lib/fastlane/actions/badge.rb +11 -2
- data/lib/fastlane/actions/last_git_commit.rb +2 -2
- data/lib/fastlane/actions/make_changelog_from_jenkins.rb +3 -1
- data/lib/fastlane/actions/s3.rb +7 -1
- data/lib/fastlane/helper/git_helper.rb +3 -1
- data/lib/fastlane/helper/sh_helper.rb +9 -29
- data/lib/fastlane/setup/setup_ios.rb +27 -8
- data/lib/fastlane/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a1d03886641cb6e37a2e1050678327f3ff8ffa4
|
4
|
+
data.tar.gz: aabe7a99dcbb2568bab3c949ac944bdf192f9546
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7163d0dda0c6c01f15a6a3007fc616b90cc9293df083d2c172fb0013057f92c36ff990b0429ec32daa5a7099ca9a61a7a8dc6ec2ca83766c7c578ba3d44a0f3
|
7
|
+
data.tar.gz: 6ba39cddb16a1f3bcec3bcd9ee3feabc29f58e1a32ab2a94bbc72d0abcc7df40930869c2ee7ee5e620b5348565940532960e811c751575630aaff42a25608d27
|
data/README.md
CHANGED
@@ -89,7 +89,7 @@ fastlane appstore
|
|
89
89
|
:mountain_cableway: | Implement a fully working Continuous Delivery process
|
90
90
|
:ghost: | [Jenkins Integration](https://github.com/fastlane/fastlane/blob/master/docs/Jenkins.md): Show the output directly in the Jenkins test results
|
91
91
|
:book: | Automatically generate a markdown documentation of your lane config
|
92
|
-
:hatching_chick: | Over
|
92
|
+
:hatching_chick: | Over 150 built-in integrations available
|
93
93
|
:computer: | Support for both iOS, Mac OS and Android apps
|
94
94
|
:octocat: | Full git and mercurial support
|
95
95
|
|
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
<div class="oneRow">
|
56
56
|
<span class="download" id="ios">
|
57
|
-
<a href="itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=<%=
|
57
|
+
<a href="itms-services://?action=download-manifest&url=itms-services://?action=download-manifest&url=<%= plist_url %>" id="text" class="btn btn-lg btn-default" onclick="document.getElementById('finished').id = '';">
|
58
58
|
Install <%= title %> <%= bundle_version %>
|
59
59
|
</a>
|
60
60
|
</span>
|
@@ -62,7 +62,7 @@
|
|
62
62
|
<!-- <span class="download" id="android">
|
63
63
|
</span> -->
|
64
64
|
</div>
|
65
|
-
|
65
|
+
|
66
66
|
<h3 id="desktop">Please open this page on your iPhone!</h3>
|
67
67
|
|
68
68
|
<p id="finished">
|
@@ -70,7 +70,7 @@
|
|
70
70
|
</p>
|
71
71
|
|
72
72
|
<p id="footnote">
|
73
|
-
This is a beta version and is not meant to share with the public.
|
73
|
+
This is a beta version and is not meant to share with the public.
|
74
74
|
</p>
|
75
75
|
<img src="https://s3-eu-west-1.amazonaws.com/fastlane.tools/fastlane_medium.png" id="fastlaneLogo" />
|
76
76
|
</body>
|
@@ -92,4 +92,4 @@
|
|
92
92
|
// document.getElementById("android").remove()
|
93
93
|
}
|
94
94
|
</script>
|
95
|
-
</html>
|
95
|
+
</html>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<key>kind</key>
|
12
12
|
<string>software-package</string>
|
13
13
|
<key>url</key>
|
14
|
-
<string><%=
|
14
|
+
<string><%= ipa_url %></string>
|
15
15
|
</dict>
|
16
16
|
</array>
|
17
17
|
<key>metadata</key>
|
@@ -28,4 +28,4 @@
|
|
28
28
|
</dict>
|
29
29
|
</array>
|
30
30
|
</dict>
|
31
|
-
</plist>
|
31
|
+
</plist>
|
@@ -1,27 +1,16 @@
|
|
1
1
|
module Fastlane
|
2
2
|
module Actions
|
3
3
|
class AppaloosaAction < Action
|
4
|
-
APPALOOSA_SERVER = 'https://www.appaloosa-store.com/api/
|
4
|
+
APPALOOSA_SERVER = 'https://www.appaloosa-store.com/api/v2'.freeze
|
5
5
|
def self.run(params)
|
6
|
-
require 'http'
|
7
|
-
|
8
6
|
api_key = params[:api_token]
|
9
7
|
store_id = params[:store_id]
|
10
|
-
|
11
|
-
if request_email?(api_key, store_id)
|
12
|
-
auth = create_an_account params[:email]
|
13
|
-
api_key = auth['api_key']
|
14
|
-
store_id = auth['store_id']
|
15
|
-
return if error_detected(auth['errors'])
|
16
|
-
end
|
17
|
-
|
18
|
-
binary = normalize_binary_name(params[:binary])
|
8
|
+
binary = params[:binary]
|
19
9
|
remove_extra_screenshots_file(params[:screenshots])
|
20
10
|
binary_url = get_binary_link(binary, api_key, store_id, params[:group_ids])
|
21
11
|
return if binary_url.nil?
|
22
12
|
screenshots_url = get_screenshots_links(api_key, store_id, params[:screenshots], params[:locale], params[:device])
|
23
13
|
upload_on_appaloosa(api_key, store_id, binary_url, screenshots_url, params[:group_ids])
|
24
|
-
reset_original_binary_names(binary, params[:binary])
|
25
14
|
end
|
26
15
|
|
27
16
|
def self.get_binary_link(binary, api_key, store_id, group_ids)
|
@@ -32,15 +21,15 @@ module Fastlane
|
|
32
21
|
|
33
22
|
def self.upload_on_s3(file, api_key, store_id, group_ids = '')
|
34
23
|
file_name = file.split('/').last
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
json_res = JSON.parse(
|
24
|
+
uri = URI("#{APPALOOSA_SERVER}/upload_services/presign_form")
|
25
|
+
params = { file: file_name, store_id: store_id, group_ids: group_ids }
|
26
|
+
uri.query = URI.encode_www_form(params)
|
27
|
+
presign_form_response = Net::HTTP.get_response(uri)
|
28
|
+
json_res = JSON.parse(presign_form_response.body)
|
40
29
|
return if error_detected json_res['errors']
|
41
|
-
|
30
|
+
s3_sign = json_res['s3_sign']
|
42
31
|
path = json_res['path']
|
43
|
-
uri = URI.parse(Base64.decode64(
|
32
|
+
uri = URI.parse(Base64.decode64(s3_sign))
|
44
33
|
File.open(file, 'rb') do |f|
|
45
34
|
Net::HTTP.start(uri.host) do |http|
|
46
35
|
http.send_request('PUT', uri.request_uri, f.read, 'content-type' => '')
|
@@ -50,42 +39,23 @@ module Fastlane
|
|
50
39
|
end
|
51
40
|
|
52
41
|
def self.get_s3_url(api_key, store_id, path)
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
if
|
58
|
-
|
42
|
+
uri = URI("#{APPALOOSA_SERVER}/#{store_id}/upload_services/url_for_download")
|
43
|
+
params = { store_id: store_id, api_key: api_key, key: path }
|
44
|
+
uri.query = URI.encode_www_form(params)
|
45
|
+
url_for_download_response = Net::HTTP.get_response(uri)
|
46
|
+
if url_for_download_response.kind_of?(Net::HTTPNotFound)
|
47
|
+
UI.user_error!("ERROR: A problem occurred with your API token and your store id. Please try again.")
|
59
48
|
end
|
60
|
-
json_res = JSON.parse(
|
49
|
+
json_res = JSON.parse(url_for_download_response.body)
|
61
50
|
return if error_detected(json_res['errors'])
|
62
51
|
json_res['binary_url']
|
63
52
|
end
|
64
53
|
|
65
|
-
def self.reset_original_binary_names(current_name, original_name)
|
66
|
-
File.rename("#{current_name}", "#{original_name}")
|
67
|
-
end
|
68
|
-
|
69
54
|
def self.remove_extra_screenshots_file(screenshots_env)
|
70
55
|
extra_file = "#{screenshots_env}/screenshots.html"
|
71
56
|
File.unlink(extra_file) if File.exist?(extra_file)
|
72
57
|
end
|
73
58
|
|
74
|
-
def self.normalize_binary_name(binary)
|
75
|
-
binary_rename = binary.delete(' ')
|
76
|
-
File.rename("#{binary}", "#{binary_rename}")
|
77
|
-
binary_rename
|
78
|
-
end
|
79
|
-
|
80
|
-
def self.create_an_account(email)
|
81
|
-
response = HTTP.post("#{APPALOOSA_SERVER}/upload_services/create_an_account", form: { email: email })
|
82
|
-
JSON.parse(response)
|
83
|
-
end
|
84
|
-
|
85
|
-
def self.request_email?(api_key, store_id)
|
86
|
-
api_key.size == 0 && store_id.size == 0
|
87
|
-
end
|
88
|
-
|
89
59
|
def self.upload_screenshots(screenshots, api_key, store_id)
|
90
60
|
return if screenshots.nil?
|
91
61
|
list = []
|
@@ -113,7 +83,7 @@ module Fastlane
|
|
113
83
|
def self.get_screenshots(screenshots_path, locale, device)
|
114
84
|
get_env_value('screenshots').nil? ? locale = '' : locale.concat('/')
|
115
85
|
device.nil? ? device = '' : device.concat('-')
|
116
|
-
screenshots_path.strip.
|
86
|
+
!screenshots_path.strip.empty? ? screenshots_list(screenshots_path, locale, device) : nil
|
117
87
|
end
|
118
88
|
|
119
89
|
def self.screenshots_list(path, locale, device)
|
@@ -127,21 +97,24 @@ module Fastlane
|
|
127
97
|
|
128
98
|
def self.upload_on_appaloosa(api_key, store_id, binary_path, screenshots, group_ids)
|
129
99
|
screenshots = all_screenshots_links(screenshots)
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
100
|
+
uri = URI("#{APPALOOSA_SERVER}/#{store_id}/mobile_application_updates/upload")
|
101
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
102
|
+
req = Net::HTTP::Post.new(uri.path, { 'Content-Type' => 'application/json' })
|
103
|
+
req.body = { store_id: store_id,
|
104
|
+
api_key: api_key,
|
105
|
+
mobile_application_update: {
|
106
|
+
binary_path: binary_path,
|
107
|
+
screenshot1: screenshots[0],
|
108
|
+
screenshot2: screenshots[1],
|
109
|
+
screenshot3: screenshots[2],
|
110
|
+
screenshot4: screenshots[3],
|
111
|
+
screenshot5: screenshots[4],
|
112
|
+
group_ids: group_ids,
|
113
|
+
provider: 'fastlane'
|
114
|
+
}
|
115
|
+
}.to_json
|
116
|
+
uoa_response = http.request(req)
|
117
|
+
json_res = JSON.parse(uoa_response.body)
|
145
118
|
if json_res['errors']
|
146
119
|
UI.error "App: #{json_res['errors']}"
|
147
120
|
else
|
@@ -172,8 +145,7 @@ module Fastlane
|
|
172
145
|
|
173
146
|
def self.error_detected(errors)
|
174
147
|
if errors
|
175
|
-
UI.
|
176
|
-
true
|
148
|
+
UI.user_error!("ERROR: #{errors}")
|
177
149
|
else
|
178
150
|
false
|
179
151
|
end
|
@@ -194,34 +166,28 @@ module Fastlane
|
|
194
166
|
|
195
167
|
def self.details
|
196
168
|
[
|
197
|
-
"Appaloosa is a private mobile application store. This action
|
198
|
-
"
|
199
|
-
|
169
|
+
"Appaloosa is a private mobile application store. This action ",
|
170
|
+
"offers a quick deployment on the platform. You can create an ",
|
171
|
+
"account, push to your existing account, or manage your user ",
|
172
|
+
"groups. We accept iOS and Android applications."
|
173
|
+
].join("\n")
|
200
174
|
end
|
201
175
|
|
202
176
|
def self.available_options
|
203
177
|
[
|
204
178
|
FastlaneCore::ConfigItem.new(key: :binary,
|
205
179
|
env_name: 'FL_APPALOOSA_BINARY',
|
206
|
-
description: '
|
180
|
+
description: 'Binary path. Optional for ipa if you use the `ipa` or `xcodebuild` action',
|
207
181
|
default_value: Actions.lane_context[SharedValues::IPA_OUTPUT_PATH],
|
208
182
|
verify_block: proc do |value|
|
209
|
-
|
183
|
+
raise "Couldn't find ipa || apk file at path '#{value}'".red unless File.exist?(value)
|
210
184
|
end),
|
211
185
|
FastlaneCore::ConfigItem.new(key: :api_token,
|
212
186
|
env_name: 'FL_APPALOOSA_API_TOKEN',
|
213
|
-
description: "Your API
|
214
|
-
verify_block: proc do
|
215
|
-
end),
|
187
|
+
description: "Your API token"),
|
216
188
|
FastlaneCore::ConfigItem.new(key: :store_id,
|
217
189
|
env_name: 'FL_APPALOOSA_STORE_ID',
|
218
|
-
description: "Your Store id
|
219
|
-
verify_block: proc do |_value|
|
220
|
-
end),
|
221
|
-
FastlaneCore::ConfigItem.new(key: :email,
|
222
|
-
env_name: 'FL_APPALOOSA_EMAIL',
|
223
|
-
description: "It's your first time? Give your email address",
|
224
|
-
optional: false),
|
190
|
+
description: "Your Store id"),
|
225
191
|
FastlaneCore::ConfigItem.new(key: :group_ids,
|
226
192
|
env_name: 'FL_APPALOOSA_GROUPS',
|
227
193
|
description: 'Your app is limited to special users? Give us the group ids',
|
@@ -235,13 +201,11 @@ module Fastlane
|
|
235
201
|
env_name: 'FL_APPALOOSA_LOCALE',
|
236
202
|
description: 'Select the folder locale for yours screenshots',
|
237
203
|
default_value: 'en-US',
|
238
|
-
optional: true
|
239
|
-
),
|
204
|
+
optional: true),
|
240
205
|
FastlaneCore::ConfigItem.new(key: :device,
|
241
206
|
env_name: 'FL_APPALOOSA_DEVICE',
|
242
207
|
description: 'Select the device format for yours screenshots',
|
243
|
-
optional: true
|
244
|
-
)
|
208
|
+
optional: true)
|
245
209
|
]
|
246
210
|
end
|
247
211
|
|
@@ -11,7 +11,8 @@ module Fastlane
|
|
11
11
|
shield: params[:shield],
|
12
12
|
alpha: params[:alpha],
|
13
13
|
shield_io_timeout: params[:shield_io_timeout],
|
14
|
-
glob: params[:glob]
|
14
|
+
glob: params[:glob],
|
15
|
+
alpha_channel: params[:alpha_channel]
|
15
16
|
}
|
16
17
|
Badge::Runner.new.run(params[:path], options)
|
17
18
|
end
|
@@ -91,7 +92,15 @@ module Fastlane
|
|
91
92
|
env_name: "FL_BADGE_GLOB",
|
92
93
|
description: "Glob pattern for finding image files",
|
93
94
|
optional: true,
|
94
|
-
is_string: true)
|
95
|
+
is_string: true),
|
96
|
+
FastlaneCore::ConfigItem.new(key: :alpha_channel,
|
97
|
+
env_name: "FL_BADGE_ALPHA_CHANNEL",
|
98
|
+
description: "Keeps/adds an alpha channel to the icon (useful for android icons)",
|
99
|
+
optional: true,
|
100
|
+
is_string: false,
|
101
|
+
verify_block: proc do |value|
|
102
|
+
raise "alpha_channel is only a flag and should always be true".red unless value == true
|
103
|
+
end)
|
95
104
|
]
|
96
105
|
end
|
97
106
|
|
@@ -10,11 +10,11 @@ module Fastlane
|
|
10
10
|
#####################################################
|
11
11
|
|
12
12
|
def self.description
|
13
|
-
"Return last git commit message and author"
|
13
|
+
"Return last git commit hash, abbreviated commit hash, commit message and author"
|
14
14
|
end
|
15
15
|
|
16
16
|
def self.return_value
|
17
|
-
"Returns the following dict: {author: \"Author\", message: \"commit message\"}"
|
17
|
+
"Returns the following dict: {commit_hash: \"commit hash\", abbreviated_commit_hash: \"abbreviated commit hash\" author: \"Author\", message: \"commit message\"}"
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.author
|
data/lib/fastlane/actions/s3.rb
CHANGED
@@ -135,6 +135,7 @@ module Fastlane
|
|
135
135
|
end
|
136
136
|
plist_render = eth.render(plist_template, {
|
137
137
|
url: ipa_url,
|
138
|
+
ipa_url: ipa_url,
|
138
139
|
build_num: build_num,
|
139
140
|
bundle_id: bundle_id,
|
140
141
|
bundle_version: bundle_version,
|
@@ -149,6 +150,8 @@ module Fastlane
|
|
149
150
|
end
|
150
151
|
html_render = eth.render(html_template, {
|
151
152
|
url: plist_url,
|
153
|
+
plist_url: plist_url,
|
154
|
+
ipa_url: ipa_url,
|
152
155
|
build_num: build_num,
|
153
156
|
bundle_id: bundle_id,
|
154
157
|
bundle_version: bundle_version,
|
@@ -163,6 +166,8 @@ module Fastlane
|
|
163
166
|
end
|
164
167
|
version_render = eth.render(version_template, {
|
165
168
|
url: plist_url,
|
169
|
+
plist_url: plist_url,
|
170
|
+
ipa_url: ipa_url,
|
166
171
|
build_num: build_num,
|
167
172
|
bundle_version: bundle_version,
|
168
173
|
full_version: full_version
|
@@ -282,7 +287,8 @@ module Fastlane
|
|
282
287
|
env_name: "",
|
283
288
|
description: "Upload relevant metadata for this build",
|
284
289
|
optional: true,
|
285
|
-
default_value: true
|
290
|
+
default_value: true,
|
291
|
+
is_string: false),
|
286
292
|
FastlaneCore::ConfigItem.new(key: :plist_template_path,
|
287
293
|
env_name: "",
|
288
294
|
description: "plist template path",
|
@@ -28,7 +28,9 @@ module Fastlane
|
|
28
28
|
|
29
29
|
{
|
30
30
|
author: last_git_commit_formatted_with('%an'),
|
31
|
-
message: last_git_commit_formatted_with('%B')
|
31
|
+
message: last_git_commit_formatted_with('%B'),
|
32
|
+
commit_hash: last_git_commit_formatted_with('%H'),
|
33
|
+
abbreviated_commit_hash: last_git_commit_formatted_with('%h')
|
32
34
|
}
|
33
35
|
end
|
34
36
|
|
@@ -22,10 +22,15 @@ module Fastlane
|
|
22
22
|
if Helper.test?
|
23
23
|
result << command # only for the tests
|
24
24
|
else
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
exit_status = nil
|
26
|
+
IO.popen(command, err: [:child, :out]) do |io|
|
27
|
+
io.sync = true
|
28
|
+
io.each do |line|
|
29
|
+
UI.command_output(line.strip) if log
|
30
|
+
result << line
|
31
|
+
end
|
32
|
+
io.close
|
33
|
+
exit_status = $?.exitstatus
|
29
34
|
end
|
30
35
|
|
31
36
|
if exit_status != 0
|
@@ -47,30 +52,5 @@ module Fastlane
|
|
47
52
|
Encoding.default_external = previous_encoding.first
|
48
53
|
Encoding.default_internal = previous_encoding.last
|
49
54
|
end
|
50
|
-
|
51
|
-
def self.execute_with_popen(command, log, result)
|
52
|
-
exit_status = nil
|
53
|
-
IO.popen(command, err: [:child, :out]) do |io|
|
54
|
-
io.sync = true
|
55
|
-
io.each do |line|
|
56
|
-
UI.command_output(line.strip) if log
|
57
|
-
result << line
|
58
|
-
end
|
59
|
-
io.close
|
60
|
-
exit_status = $?.exitstatus
|
61
|
-
end
|
62
|
-
exit_status
|
63
|
-
end
|
64
|
-
|
65
|
-
def self.execute_with_simple_popen(command, log, result)
|
66
|
-
puts 'Using simple popen'
|
67
|
-
IO.popen(command, err: [:child, :out]) do |io|
|
68
|
-
io.each do |line|
|
69
|
-
UI.command_output(line.strip) if log
|
70
|
-
result << line
|
71
|
-
end
|
72
|
-
end
|
73
|
-
$?.exitstatus
|
74
|
-
end
|
75
55
|
end
|
76
56
|
end
|
@@ -22,29 +22,48 @@ module Fastlane
|
|
22
22
|
|
23
23
|
show_infos
|
24
24
|
|
25
|
+
FastlaneFolder.create_folder! unless Helper.is_test?
|
26
|
+
fastlane_actions_path = File.join(FastlaneFolder.path, 'actions')
|
27
|
+
is_manual_setup = false
|
28
|
+
|
25
29
|
begin
|
26
|
-
FastlaneFolder.create_folder! unless Helper.is_test?
|
27
30
|
setup_project
|
28
31
|
ask_for_apple_id
|
29
32
|
detect_if_app_is_available
|
30
33
|
print_config_table
|
31
|
-
fastlane_actions_path = File.join(FastlaneFolder.path, 'actions')
|
32
34
|
if UI.confirm("Please confirm the above values")
|
33
35
|
default_setup(path: fastlane_actions_path)
|
34
36
|
else
|
37
|
+
is_manual_setup = true
|
35
38
|
manual_setup(path: fastlane_actions_path)
|
36
39
|
end
|
37
40
|
Helper.log.info 'Successfully finished setting up fastlane'.green
|
38
41
|
rescue => ex # this will also be caused by Ctrl + C
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
42
|
+
if is_manual_setup
|
43
|
+
handle_exception(exception: ex)
|
44
|
+
else
|
45
|
+
Helper.log.error ex.to_s
|
46
|
+
Helper.log.error 'An error occured during the setup process. Falling back to manual setup!'.yellow
|
47
|
+
try_manual_setup(path: fastlane_actions_path)
|
48
|
+
end
|
44
49
|
end
|
45
50
|
# rubocop:enable Lint/RescueException
|
46
51
|
end
|
47
52
|
|
53
|
+
def handle_exception(exception: nil)
|
54
|
+
# Something went wrong with the setup, clear the folder again
|
55
|
+
# and restore previous files
|
56
|
+
Helper.log.fatal 'Error occurred with the setup program! Reverting changes now!'.red
|
57
|
+
restore_previous_state
|
58
|
+
raise exception
|
59
|
+
end
|
60
|
+
|
61
|
+
def try_manual_setup(path: nil)
|
62
|
+
manual_setup(path: path)
|
63
|
+
rescue => ex
|
64
|
+
handle_exception(exception: ex)
|
65
|
+
end
|
66
|
+
|
48
67
|
def default_setup(path: nil)
|
49
68
|
copy_existing_files
|
50
69
|
generate_appfile(manually: false)
|
@@ -70,7 +89,7 @@ module Fastlane
|
|
70
89
|
|
71
90
|
def ask_to_enable_other_tools
|
72
91
|
if self.itc_ref.nil? && self.portal_ref.nil?
|
73
|
-
wants_to_create_app = agree('Would you like to create your app on iTunes Connect and the Developer Portal?', true)
|
92
|
+
wants_to_create_app = agree('Would you like to create your app on iTunes Connect and the Developer Portal? (y/n)', true)
|
74
93
|
if wants_to_create_app
|
75
94
|
create_app_if_necessary
|
76
95
|
detect_if_app_is_available # check if the app was, in fact, created.
|
data/lib/fastlane/version.rb
CHANGED
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: 1.
|
4
|
+
version: 1.63.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -47,7 +47,7 @@ dependencies:
|
|
47
47
|
version: '0.20'
|
48
48
|
- - "<"
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version:
|
50
|
+
version: 2.0.0
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -57,7 +57,7 @@ dependencies:
|
|
57
57
|
version: '0.20'
|
58
58
|
- - "<"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
60
|
+
version: 2.0.0
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: xcpretty
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -827,7 +827,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
827
827
|
version: '0'
|
828
828
|
requirements: []
|
829
829
|
rubyforge_project:
|
830
|
-
rubygems_version: 2.
|
830
|
+
rubygems_version: 2.5.0
|
831
831
|
signing_key:
|
832
832
|
specification_version: 4
|
833
833
|
summary: Connect all iOS deployment tools into one streamlined workflow
|