fastlane 1.69.0 → 1.70.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 92368e189d0fabe6140e11af939ca965f80dd279
|
4
|
+
data.tar.gz: aec475dc75f8c8ec48b321772226b08a59792822
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9a426c73fd4edcd1559259d9f10df844d67b7679463c0dd9d4a97657eddfd628451aad63dbbcfdc8a3b10b3d115fafd1348eaf749421524c8c973225d2c9641
|
7
|
+
data.tar.gz: 191d9e1609fb2eb5c54dc666c11aa4e62f332ec9e7530735728fdf5782238ac158aed5a67018cb4199dfe1183796eec2d4d5bdd5d21d15c66441c079e2615b33
|
@@ -29,6 +29,10 @@ module Fastlane
|
|
29
29
|
|
30
30
|
UI.message(message.join(" "))
|
31
31
|
app = Spaceship::Application.find(params[:app_identifier])
|
32
|
+
unless app
|
33
|
+
UI.user_error!("Could not find app with bundle identifier '#{params[:app_identifier]}' on account #{params[:username]}")
|
34
|
+
end
|
35
|
+
|
32
36
|
app.all_build_train_numbers.each do |train_number|
|
33
37
|
if version && version != train_number
|
34
38
|
next
|
@@ -8,7 +8,7 @@ module Fastlane
|
|
8
8
|
begin
|
9
9
|
FastlaneCore::UpdateChecker.start_looking_for_update('supply') unless Helper.is_test?
|
10
10
|
|
11
|
-
all_apk_paths = Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS]
|
11
|
+
all_apk_paths = Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] || []
|
12
12
|
if all_apk_paths.length > 1
|
13
13
|
params[:apk_paths] ||= all_apk_paths
|
14
14
|
else
|
@@ -2,9 +2,68 @@ module Fastlane
|
|
2
2
|
module Actions
|
3
3
|
class UploadSymbolsToCrashlyticsAction < Action
|
4
4
|
def self.run(params)
|
5
|
-
|
6
|
-
|
5
|
+
require 'tmpdir'
|
6
|
+
|
7
|
+
find_binary_path(params)
|
8
|
+
find_api_token(params)
|
9
|
+
|
10
|
+
dsym_paths = []
|
11
|
+
dsym_paths << params[:dsym_path]
|
12
|
+
dsym_paths += Actions.lane_context[SharedValues::DSYM_PATHS] if Actions.lane_context[SharedValues::DSYM_PATHS]
|
13
|
+
|
14
|
+
if dsym_paths.count == 0
|
15
|
+
UI.error("Couldn't find any dSYMs, please pass them using the dsym_path option")
|
16
|
+
return nil
|
17
|
+
end
|
7
18
|
|
19
|
+
# Get rid of duplicates (which might occur when both passed and detected)
|
20
|
+
dsym_paths = dsym_paths.collect { |a| File.expand_path(a) }
|
21
|
+
dsym_paths.uniq!
|
22
|
+
|
23
|
+
dsym_paths.each do |current_path|
|
24
|
+
handle_dsym(params, current_path)
|
25
|
+
end
|
26
|
+
|
27
|
+
UI.success("Successfully uploaded dSYM files to Crashlytics 💯")
|
28
|
+
end
|
29
|
+
|
30
|
+
# @param current_path this is a path to either a dSYM or a zipped dSYM
|
31
|
+
# this might also be either nested or not, we're flexible
|
32
|
+
def self.handle_dsym(params, current_path)
|
33
|
+
if current_path.end_with?(".dSYM")
|
34
|
+
upload_dsym(params, current_path)
|
35
|
+
elsif current_path.end_with?(".zip")
|
36
|
+
UI.message("Extracting '#{current_path}'...")
|
37
|
+
|
38
|
+
current_path = File.expand_path(current_path)
|
39
|
+
Dir.mktmpdir do |dir|
|
40
|
+
Dir.chdir(dir) do
|
41
|
+
Actions.sh("unzip -qo #{current_path.shellescape}")
|
42
|
+
Dir["*.dSYM"].each do |sub|
|
43
|
+
handle_dsym(params, sub)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
else
|
48
|
+
UI.error "Don't know how to handle '#{current_path}'"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.upload_dsym(params, path)
|
53
|
+
UI.message("Uploading '#{path}'...")
|
54
|
+
command = []
|
55
|
+
command << params[:binary_path]
|
56
|
+
command << "-a #{params[:api_token]}"
|
57
|
+
command << "-p #{params[:platform]}"
|
58
|
+
command << File.expand_path(path).shellescape
|
59
|
+
begin
|
60
|
+
Actions.sh(command.join(" "), log: false)
|
61
|
+
rescue => ex
|
62
|
+
UI.error ex.to_s # it fails, however we don't want to fail everything just for this
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.find_api_token(params)
|
8
67
|
unless params[:api_token].to_s.length > 0
|
9
68
|
Dir["./**/Info.plist"].each do |current|
|
10
69
|
result = Actions::GetInfoPlistValueAction.run(path: current, key: "Fabric")
|
@@ -14,23 +73,13 @@ module Fastlane
|
|
14
73
|
end
|
15
74
|
end
|
16
75
|
UI.user_error!("Please provide an api_token using api_token:") unless params[:api_token]
|
76
|
+
end
|
17
77
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
UI.error("Couldn't find any dSYMs, please pass them using the dsym_path option") if dsym_paths.count == 0
|
23
|
-
|
24
|
-
dsym_paths.each do |current_path|
|
25
|
-
command = []
|
26
|
-
command << File.expand_path(params[:binary_path])
|
27
|
-
command << "-a #{params[:api_token]}"
|
28
|
-
command << "-p #{params[:platform]}"
|
29
|
-
command << File.expand_path(current_path)
|
30
|
-
Actions.sh(command.join(" "))
|
31
|
-
end
|
78
|
+
def self.find_binary_path(params)
|
79
|
+
params[:binary_path] ||= (Dir["/Applications/Fabric.app/**/upload-symbols"] + Dir["./Pods/**/upload-symbols"]).last
|
80
|
+
UI.user_error!("Please provide a path to the binary using binary_path:") unless params[:binary_path]
|
32
81
|
|
33
|
-
|
82
|
+
params[:binary_path] = File.expand_path(params[:binary_path])
|
34
83
|
end
|
35
84
|
|
36
85
|
#####################################################
|
@@ -58,7 +107,7 @@ module Fastlane
|
|
58
107
|
optional: true,
|
59
108
|
verify_block: proc do |value|
|
60
109
|
UI.user_error!("Couldn't find file at path '#{File.expand_path(value)}'") unless File.exist?(value)
|
61
|
-
UI.user_error!("Symbolication file needs to be dSYM or zip") unless value.end_with?("
|
110
|
+
UI.user_error!("Symbolication file needs to be dSYM or zip") unless value.end_with?(".zip", ".dSYM")
|
62
111
|
end),
|
63
112
|
FastlaneCore::ConfigItem.new(key: :api_token,
|
64
113
|
env_name: "CRASHLYTICS_API_TOKEN",
|
data/lib/fastlane/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.70.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: krausefx-shenzhen
|
@@ -388,7 +388,7 @@ dependencies:
|
|
388
388
|
requirements:
|
389
389
|
- - ">="
|
390
390
|
- !ruby/object:Gem::Version
|
391
|
-
version: 0.
|
391
|
+
version: 0.6.0
|
392
392
|
- - "<"
|
393
393
|
- !ruby/object:Gem::Version
|
394
394
|
version: 1.0.0
|
@@ -398,7 +398,7 @@ dependencies:
|
|
398
398
|
requirements:
|
399
399
|
- - ">="
|
400
400
|
- !ruby/object:Gem::Version
|
401
|
-
version: 0.
|
401
|
+
version: 0.6.0
|
402
402
|
- - "<"
|
403
403
|
- !ruby/object:Gem::Version
|
404
404
|
version: 1.0.0
|