fastlane 2.94.0.beta.20180430050033 → 2.94.0.beta.20180501050030
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +2 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane_core/lib/fastlane_core/cert_checker.rb +7 -5
- data/fastlane_core/lib/fastlane_core/helper.rb +15 -0
- data/frameit/lib/frameit/strings_parser.rb +10 -1
- data/match/lib/match/runner.rb +5 -1
- data/scan/lib/scan/options.rb +7 -0
- data/scan/lib/scan/runner.rb +19 -0
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2284e5c7a58fc0a1faada7883aed8e304db3f056
|
4
|
+
data.tar.gz: c58a07f28f97f36bfc051dcdca1966f4d9f11acc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce66ec1ebe8c4a0e7b0b2fb5023ec27c9f022e8c046e1af872d34e112c753e84bf58a8c2e30956f4c9c26db28e3571037cd091919d101937a5e0b4a6984d38c6
|
7
|
+
data.tar.gz: a9d2e79add396ae29bd18f7e8d4a7c785fde9e578323ec2e98dcf975a3732e9ada4c21b66bf14d213c437aec0c438a85f2a5353a7b4d8343fbb47605039ad23b
|
@@ -203,7 +203,8 @@ To define the title and optionally the keyword, put two `.strings` files into th
|
|
203
203
|
|
204
204
|
The `keyword.strings` and `title.strings` are standard `.strings` file you already use for your iOS apps, making it easy to use your existing translation service to get localized titles.
|
205
205
|
|
206
|
-
**Notes**
|
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
209
|
- You **MUST** provide a background if you want titles. _frameit_ will not add the tiles if a background is not specified.
|
209
210
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.94.0.beta.
|
2
|
+
VERSION = '2.94.0.beta.20180501050030'.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
|
@@ -6,10 +6,10 @@ require_relative 'helper'
|
|
6
6
|
module FastlaneCore
|
7
7
|
# This class checks if a specific certificate is installed on the current mac
|
8
8
|
class CertChecker
|
9
|
-
def self.installed?(path)
|
9
|
+
def self.installed?(path, in_keychain: nil)
|
10
10
|
UI.user_error!("Could not find file '#{path}'") unless File.exist?(path)
|
11
11
|
|
12
|
-
ids = installed_identies
|
12
|
+
ids = installed_identies(in_keychain: in_keychain)
|
13
13
|
finger_print = sha1_fingerprint(path)
|
14
14
|
|
15
15
|
return ids.include?(finger_print)
|
@@ -20,7 +20,7 @@ module FastlaneCore
|
|
20
20
|
installed?(path)
|
21
21
|
end
|
22
22
|
|
23
|
-
def self.installed_identies
|
23
|
+
def self.installed_identies(in_keychain: nil)
|
24
24
|
install_wwdr_certificate unless wwdr_certificate_installed?
|
25
25
|
|
26
26
|
available = list_available_identities
|
@@ -47,8 +47,10 @@ module FastlaneCore
|
|
47
47
|
return ids
|
48
48
|
end
|
49
49
|
|
50
|
-
def self.list_available_identities
|
51
|
-
|
50
|
+
def self.list_available_identities(in_keychain: nil)
|
51
|
+
commands = ['security find-identity -v -p codesigning']
|
52
|
+
commands << in_keychain if in_keychain
|
53
|
+
`#{commands.join(' ')}`
|
52
54
|
end
|
53
55
|
|
54
56
|
def self.wwdr_certificate_installed?
|
@@ -266,6 +266,21 @@ module FastlaneCore
|
|
266
266
|
str.gsub(/\e\[([;\d]+)?m/, '')
|
267
267
|
end
|
268
268
|
|
269
|
+
# Zips directory
|
270
|
+
def self.zip_directory(path, output_path, contents_only: false, print: true)
|
271
|
+
if contents_only
|
272
|
+
command = "cd '#{path}' && zip -r '#{output_path}' *"
|
273
|
+
else
|
274
|
+
containing_path = File.expand_path("..", path)
|
275
|
+
contents_path = File.basename(path)
|
276
|
+
|
277
|
+
command = "cd '#{containing_path}' && zip -r '#{output_path}' '#{contents_path}'"
|
278
|
+
end
|
279
|
+
|
280
|
+
UI.command(command) unless print
|
281
|
+
Helper.backticks(command, print: print)
|
282
|
+
end
|
283
|
+
|
269
284
|
# loading indicator
|
270
285
|
#
|
271
286
|
|
@@ -10,7 +10,12 @@ module Frameit
|
|
10
10
|
result = {}
|
11
11
|
|
12
12
|
# A .strings file is UTF-16 encoded. We only want to deal with UTF-8
|
13
|
-
|
13
|
+
encoding = encoding_type(path)
|
14
|
+
if encoding.include?('utf-8') || encoding.include?('us-ascii')
|
15
|
+
content = File.read(path)
|
16
|
+
else
|
17
|
+
content = `iconv -f UTF-16 -t UTF-8 "#{path}" 2>&1` # note: double quotes around path so command also works on Windows
|
18
|
+
end
|
14
19
|
|
15
20
|
content.split("\n").each_with_index do |line, index|
|
16
21
|
begin
|
@@ -33,5 +38,9 @@ module Frameit
|
|
33
38
|
|
34
39
|
result
|
35
40
|
end
|
41
|
+
|
42
|
+
def self.encoding_type(path)
|
43
|
+
`file --mime-encoding #{path}`.downcase
|
44
|
+
end
|
36
45
|
end
|
37
46
|
end
|
data/match/lib/match/runner.rb
CHANGED
@@ -106,7 +106,11 @@ module Match
|
|
106
106
|
cert_path = certs.last
|
107
107
|
UI.message("Installing certificate...")
|
108
108
|
|
109
|
-
|
109
|
+
# Only looking for cert in "custom" (non login.keychain) keychain
|
110
|
+
# Doing this for backwards compatability
|
111
|
+
keychain_name = params[:keychain_name] == "login.keychain" ? nil : params[:keychain_name]
|
112
|
+
|
113
|
+
if FastlaneCore::CertChecker.installed?(cert_path, in_keychain: keychain_name)
|
110
114
|
UI.verbose("Certificate '#{File.basename(cert_path)}' is already installed on this machine")
|
111
115
|
else
|
112
116
|
Utils.import(cert_path, params[:keychain_name], password: params[:keychain_password])
|
data/scan/lib/scan/options.rb
CHANGED
@@ -175,6 +175,13 @@ module Scan
|
|
175
175
|
env_name: "SCAN_DERIVED_DATA_PATH",
|
176
176
|
description: "The directory where build products and other derived data will go",
|
177
177
|
optional: true),
|
178
|
+
FastlaneCore::ConfigItem.new(key: :should_zip_build_products,
|
179
|
+
short_option: "-Z",
|
180
|
+
env_name: "SCAN_SHOULD_ZIP_BUILD_PRODUCTS",
|
181
|
+
description: "Should zip the derived data build products and place in output path?",
|
182
|
+
optional: true,
|
183
|
+
is_string: false,
|
184
|
+
default_value: false),
|
178
185
|
FastlaneCore::ConfigItem.new(key: :result_bundle,
|
179
186
|
short_option: "-z",
|
180
187
|
env_name: "SCAN_RESULT_BUNDLE",
|
data/scan/lib/scan/runner.rb
CHANGED
@@ -87,11 +87,30 @@ module Scan
|
|
87
87
|
UI.test_failure!("Test execution failed. Exit status: #{tests_exit_status}")
|
88
88
|
end
|
89
89
|
|
90
|
+
zip_build_products
|
91
|
+
|
90
92
|
if !Helper.ci? && Scan.cache[:open_html_report_path]
|
91
93
|
`open --hide '#{Scan.cache[:open_html_report_path]}'`
|
92
94
|
end
|
93
95
|
end
|
94
96
|
|
97
|
+
def zip_build_products
|
98
|
+
return unless Scan.config[:should_zip_build_products]
|
99
|
+
|
100
|
+
# Gets :derived_data_path/Build/Products directory for zipping zip
|
101
|
+
derived_data_path = Scan.config[:derived_data_path]
|
102
|
+
path = File.join(derived_data_path, "Build/Products")
|
103
|
+
|
104
|
+
# Gets absolute path of output directory
|
105
|
+
output_directory = File.absolute_path(Scan.config[:output_directory])
|
106
|
+
output_path = File.join(output_directory, "build_products.zip")
|
107
|
+
|
108
|
+
# Zips build products and moves it to output directory
|
109
|
+
UI.message("Zipping build products")
|
110
|
+
FastlaneCore::Helper.zip_directory(path, output_path, contents_only: true, print: false)
|
111
|
+
UI.message("Succesfully zipped build products: #{output_path}")
|
112
|
+
end
|
113
|
+
|
95
114
|
def test_results
|
96
115
|
temp_junit_report = Scan.cache[:temp_junit_report]
|
97
116
|
return File.read(temp_junit_report) if temp_junit_report && File.file?(temp_junit_report)
|
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.94.0.beta.
|
4
|
+
version: 2.94.0.beta.20180501050030
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
@@ -27,7 +27,7 @@ authors:
|
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2018-
|
30
|
+
date: 2018-05-01 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -1637,24 +1637,24 @@ metadata:
|
|
1637
1637
|
post_install_message:
|
1638
1638
|
rdoc_options: []
|
1639
1639
|
require_paths:
|
1640
|
+
- credentials_manager/lib
|
1641
|
+
- pilot/lib
|
1642
|
+
- match/lib
|
1643
|
+
- supply/lib
|
1640
1644
|
- spaceship/lib
|
1641
|
-
-
|
1642
|
-
- produce/lib
|
1643
|
-
- precheck/lib
|
1644
|
-
- gym/lib
|
1645
|
+
- sigh/lib
|
1645
1646
|
- screengrab/lib
|
1646
|
-
- match/lib
|
1647
|
-
- pilot/lib
|
1648
|
-
- credentials_manager/lib
|
1649
1647
|
- frameit/lib
|
1650
|
-
-
|
1651
|
-
- sigh/lib
|
1648
|
+
- produce/lib
|
1652
1649
|
- deliver/lib
|
1650
|
+
- gym/lib
|
1651
|
+
- snapshot/lib
|
1652
|
+
- fastlane_core/lib
|
1653
1653
|
- fastlane/lib
|
1654
1654
|
- cert/lib
|
1655
|
-
-
|
1655
|
+
- precheck/lib
|
1656
1656
|
- scan/lib
|
1657
|
-
-
|
1657
|
+
- pem/lib
|
1658
1658
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1659
1659
|
requirements:
|
1660
1660
|
- - ">="
|