fastlane 1.62.0 → 1.63.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|