fastlane 2.95.0.beta.20180502050125 → 2.95.0.beta.20180503050136
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/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +19 -11
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +19 -0
- data/fastlane/lib/fastlane/actions/update_fastlane.rb +2 -2
- data/fastlane/lib/fastlane/fast_file.rb +1 -0
- data/fastlane/lib/fastlane/lane_manager.rb +5 -0
- data/fastlane/lib/fastlane/lane_manager_base.rb +9 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/configuration/configuration_file.rb +3 -1
- data/fastlane_core/lib/fastlane_core/ui/implementations/shell.rb +17 -0
- data/fastlane_core/lib/fastlane_core/ui/interface.rb +8 -0
- data/pilot/lib/pilot/commands_generator.rb +1 -1
- metadata +14 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3abe7f47de2ab60cef65f6cc24b219f9c2f8599f
|
4
|
+
data.tar.gz: 185724ecc03fe6388c4e6953b9d8ffdd822e7cb8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7d8be4839517946020d96f5ab3a5cf2911e28f00cb06b007965c63549e5db7a26b082ee9c1599f9f0fc7e3680f204985bea2c758a0cdabdba6d456d87a2e8b0
|
7
|
+
data.tar.gz: d9c2c3c1ea81a6393b84039eb9d90458c791bd3d5078f77a9ab9a932e11d3828096099e2c078baf4f4816073cbad42ec35611def2540fdfd843a8773f6039f8e
|
@@ -29,19 +29,22 @@ module Fastlane
|
|
29
29
|
merge_commit_filtering = :exclude_merges
|
30
30
|
end
|
31
31
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
32
|
+
Dir.chdir(params[:path]) do
|
33
|
+
if params[:commits_count]
|
34
|
+
changelog = Actions.git_log_last_commits(params[:pretty], params[:commits_count], merge_commit_filtering, params[:date_format], params[:ancestry_path])
|
35
|
+
else
|
36
|
+
changelog = Actions.git_log_between(params[:pretty], from, to, merge_commit_filtering, params[:date_format], params[:ancestry_path])
|
37
|
+
end
|
38
|
+
|
39
|
+
changelog = changelog.gsub("\n\n", "\n") if changelog # as there are duplicate newlines
|
40
|
+
Actions.lane_context[SharedValues::FL_CHANGELOG] = changelog
|
39
41
|
|
40
|
-
|
41
|
-
|
42
|
-
|
42
|
+
puts("")
|
43
|
+
puts(changelog)
|
44
|
+
puts("")
|
43
45
|
|
44
|
-
|
46
|
+
changelog
|
47
|
+
end
|
45
48
|
end
|
46
49
|
|
47
50
|
#####################################################
|
@@ -83,6 +86,11 @@ module Fastlane
|
|
83
86
|
verify_block: proc do |value|
|
84
87
|
UI.user_error!(":commits_count must be >= 1") unless value.to_i >= 1
|
85
88
|
end),
|
89
|
+
FastlaneCore::ConfigItem.new(key: :path,
|
90
|
+
env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_PATH',
|
91
|
+
description: 'Path of the git repository',
|
92
|
+
optional: true,
|
93
|
+
default_value: './'),
|
86
94
|
FastlaneCore::ConfigItem.new(key: :pretty,
|
87
95
|
env_name: 'FL_CHANGELOG_FROM_GIT_COMMITS_PRETTY',
|
88
96
|
description: 'The format applied to each commit while generating the collected value',
|
@@ -205,7 +205,7 @@ The `keyword.strings` and `title.strings` are standard `.strings` file you alrea
|
|
205
205
|
|
206
206
|
**Notes**
|
207
207
|
|
208
|
-
- These `.strings` files **MUST** be utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see [issue #1740](https://github.com/fastlane/fastlane/issues/1740)
|
208
|
+
- These `.strings` files **MUST** be utf-8 (UTF-8) or utf-16 encoded (UTF-16 BE with BOM). They also must begin with an empty line. If you are having trouble see [issue #1740](https://github.com/fastlane/fastlane/issues/1740)
|
209
209
|
- You **MUST** provide a background if you want titles. _frameit_ will not add the tiles if a background is not specified.
|
210
210
|
|
211
211
|
# Mac
|
@@ -325,6 +325,25 @@ If you want to manually decrypt a file you can.
|
|
325
325
|
openssl aes-256-cbc -k "<password>" -in "<fileYouWantToDecryptPath>" -out "<decryptedFilePath>" -a -d
|
326
326
|
```
|
327
327
|
|
328
|
+
#### Export Distribution Certificate and Private Key as Single .p12 File
|
329
|
+
|
330
|
+
_match_ stores the certificate (.cer) and the private key (.p12) files separately. The following steps will repackage the separate certificate and private key into a single .p12 file.
|
331
|
+
|
332
|
+
Decrypt your cert found in certs/`<type>`/`<unique-id>`.cer as a pem file
|
333
|
+
```no-highlight
|
334
|
+
openssl aes-256-cbc -k "<password>" -in "certs/<type>/<unique-id>.cer" -out "cert.dem" -a -d
|
335
|
+
openssl x509 -inform der -in cert.der -out cert.pem
|
336
|
+
```
|
337
|
+
|
338
|
+
Decrypt your private key found in certs/`<type>`/`<unique-id>`.p12 as a pem file
|
339
|
+
```no-highlight
|
340
|
+
openssl aes-256-cbc -k "<password>" -in "certs/distribution/<unique-id>.p12" -out "key.pem" -a -d
|
341
|
+
```
|
342
|
+
|
343
|
+
Generate an encrypted p12 file with the same or new password
|
344
|
+
```no-highlight
|
345
|
+
openssl pkcs12 -export -out "cert.p12" -inkey "key.pem' -in "cert.pem" -password pass:<password>
|
346
|
+
```
|
328
347
|
|
329
348
|
## Is this secure?
|
330
349
|
|
@@ -28,9 +28,9 @@ module Fastlane
|
|
28
28
|
sudo_needed = !File.writable?(gem_dir)
|
29
29
|
|
30
30
|
if sudo_needed
|
31
|
-
UI.important("It seems that your Gem directory is not writable by your current
|
31
|
+
UI.important("It seems that your Gem directory is not writable by your current user.")
|
32
32
|
UI.important("fastlane would need sudo rights to update itself, however, running 'sudo fastlane' is not recommended.")
|
33
|
-
UI.important("If you still want to use this action, please read the documentation on
|
33
|
+
UI.important("If you still want to use this action, please read the documentation on how to set this up:")
|
34
34
|
UI.important("https://docs.fastlane.tools/actions/#update_fastlane")
|
35
35
|
return
|
36
36
|
end
|
@@ -57,6 +57,7 @@ module Fastlane
|
|
57
57
|
# rubocop:enable Security/Eval
|
58
58
|
rescue SyntaxError => ex
|
59
59
|
line = ex.to_s.match(/#{Regexp.escape(relative_path)}:(\d+)/)[1]
|
60
|
+
UI.content_error(data, line)
|
60
61
|
UI.user_error!("Syntax error in your Fastfile on line #{line}: #{ex}")
|
61
62
|
end
|
62
63
|
end
|
@@ -57,12 +57,17 @@ module Fastlane
|
|
57
57
|
e = nil
|
58
58
|
begin
|
59
59
|
ff.runner.execute(lane, platform, parameters)
|
60
|
+
rescue NameError => ex
|
61
|
+
print_lane_context
|
62
|
+
print_error_line(ex)
|
63
|
+
e = ex
|
60
64
|
rescue Exception => ex # rubocop:disable Lint/RescueException
|
61
65
|
# We also catch Exception, since the implemented action might send a SystemExit signal
|
62
66
|
# (or similar). We still want to catch that, since we want properly finish running fastlane
|
63
67
|
# Tested with `xcake`, which throws a `Xcake::Informative` object
|
64
68
|
|
65
69
|
print_lane_context
|
70
|
+
print_error_line(ex)
|
66
71
|
UI.error(ex.to_s) if ex.kind_of?(StandardError) # we don't want to print things like 'system exit'
|
67
72
|
e = ex
|
68
73
|
end
|
@@ -75,5 +75,14 @@ module Fastlane
|
|
75
75
|
rows: FastlaneCore::PrintTable.transform_output(rows)
|
76
76
|
}))
|
77
77
|
end
|
78
|
+
|
79
|
+
def self.print_error_line(ex)
|
80
|
+
error_line = ex.backtrace[0].match("Fastfile:(\\d+):")
|
81
|
+
return unless error_line
|
82
|
+
|
83
|
+
line = error_line[1]
|
84
|
+
UI.error("Error in your Fastfile at line #{line}")
|
85
|
+
UI.content_error(File.read(FastlaneCore::FastlaneFolder.fastfile_path, encoding: "utf-8"), line)
|
86
|
+
end
|
78
87
|
end
|
79
88
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.95.0.beta.
|
2
|
+
VERSION = '2.95.0.beta.20180503050136'.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
|
@@ -43,12 +43,14 @@ module FastlaneCore
|
|
43
43
|
|
44
44
|
begin
|
45
45
|
# rubocop:disable Security/Eval
|
46
|
-
eval(content) # this is okay in this case
|
46
|
+
puts(eval(content)) # this is okay in this case
|
47
47
|
# rubocop:enable Security/Eval
|
48
48
|
|
49
49
|
print_resulting_config_values unless skip_printing_values # only on success
|
50
50
|
rescue SyntaxError => ex
|
51
51
|
line = ex.to_s.match(/\(eval\):(\d+)/)[1]
|
52
|
+
UI.error("Error in your #{File.basename(path)} at line #{line}")
|
53
|
+
UI.content_error(content, line)
|
52
54
|
UI.user_error!("Syntax error in your configuration file '#{path}' on line #{line}: #{ex}")
|
53
55
|
rescue => ex
|
54
56
|
raise ExceptionWhileParsingError.new(ex, self.options), "Error while parsing config file at #{path}"
|
@@ -96,6 +96,23 @@ module FastlaneCore
|
|
96
96
|
success("-" * i)
|
97
97
|
end
|
98
98
|
|
99
|
+
def content_error(content, error_line)
|
100
|
+
error_line = error_line.to_i
|
101
|
+
return unless error_line > 0
|
102
|
+
|
103
|
+
contents = content.split(/\r?\n/).map(&:chomp)
|
104
|
+
|
105
|
+
start_line = error_line - 2 < 1 ? 1 : error_line - 2
|
106
|
+
end_line = error_line + 2 < contents.length ? error_line + 2 : contents.length
|
107
|
+
|
108
|
+
Range.new(start_line, end_line).each do |line|
|
109
|
+
str = line == error_line ? " => " : " "
|
110
|
+
str << line.to_s.rjust(Math.log10(end_line) + 1)
|
111
|
+
str << ":\t#{contents[line - 1]}"
|
112
|
+
error(str)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
99
116
|
#####################################################
|
100
117
|
# @!group Errors: Inputs
|
101
118
|
#####################################################
|
@@ -78,6 +78,14 @@ module FastlaneCore
|
|
78
78
|
not_implemented(__method__)
|
79
79
|
end
|
80
80
|
|
81
|
+
# Print lines of content around specific line where
|
82
|
+
# failed to parse.
|
83
|
+
#
|
84
|
+
# This message will be shown as error
|
85
|
+
def content_error(content, error_line)
|
86
|
+
not_implemented(__method__)
|
87
|
+
end
|
88
|
+
|
81
89
|
#####################################################
|
82
90
|
# @!group Errors: Inputs
|
83
91
|
#####################################################
|
@@ -151,7 +151,7 @@ module Pilot
|
|
151
151
|
|
152
152
|
command :import do |c|
|
153
153
|
c.syntax = "fastlane pilot import"
|
154
|
-
c.description = "
|
154
|
+
c.description = "Import external testers from a CSV file called testers.csv"
|
155
155
|
|
156
156
|
FastlaneCore::CommanderGenerator.new.generate(Pilot::Options.available_options, command: c)
|
157
157
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.95.0.beta.
|
4
|
+
version: 2.95.0.beta.20180503050136
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Natchev
|
@@ -27,7 +27,7 @@ authors:
|
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2018-05-
|
30
|
+
date: 2018-05-03 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -1651,24 +1651,24 @@ metadata:
|
|
1651
1651
|
post_install_message:
|
1652
1652
|
rdoc_options: []
|
1653
1653
|
require_paths:
|
1654
|
-
-
|
1654
|
+
- gym/lib
|
1655
|
+
- pem/lib
|
1656
|
+
- fastlane_core/lib
|
1655
1657
|
- deliver/lib
|
1658
|
+
- screengrab/lib
|
1659
|
+
- scan/lib
|
1660
|
+
- precheck/lib
|
1661
|
+
- match/lib
|
1662
|
+
- fastlane/lib
|
1663
|
+
- sigh/lib
|
1664
|
+
- spaceship/lib
|
1656
1665
|
- frameit/lib
|
1657
1666
|
- pilot/lib
|
1658
|
-
- credentials_manager/lib
|
1659
|
-
- fastlane_core/lib
|
1660
1667
|
- cert/lib
|
1661
|
-
-
|
1662
|
-
- gym/lib
|
1668
|
+
- produce/lib
|
1663
1669
|
- snapshot/lib
|
1664
|
-
- fastlane/lib
|
1665
|
-
- sigh/lib
|
1666
|
-
- spaceship/lib
|
1667
|
-
- match/lib
|
1668
|
-
- precheck/lib
|
1669
|
-
- scan/lib
|
1670
1670
|
- supply/lib
|
1671
|
-
-
|
1671
|
+
- credentials_manager/lib
|
1672
1672
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1673
1673
|
requirements:
|
1674
1674
|
- - ">="
|