fastlane-plugin-debug_file 0.2.1 → 0.3.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
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6de0426bbcc785a3db2a4483af51de043a9e862a8cb6f792d7ffee43e773bb4d
|
4
|
+
data.tar.gz: 3d296aba5604d577407a2f8c7cb64914e8fd940b83b9a532d16c57617b60e869
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8b7037b037a4280d390dc92358c41e81993211b87106274807d2b4c66e3c6a54813c48811d10caa2c2dc528598e503f770e2adef084481b61b854754f8f8c3e
|
7
|
+
data.tar.gz: f20e6363150ab34eba59af8616764f730f3a65a95b7e6e6d13d87dabf8943d4c9285c9d16a792ff800444be6fa516d41a45fd493b6465ae88081a3c13ac9f9c0
|
@@ -14,29 +14,32 @@ module Fastlane
|
|
14
14
|
OUTPUT_PATH = '.'
|
15
15
|
|
16
16
|
def self.run(params)
|
17
|
-
archive_path = File.expand_path(params[:archive_path])
|
18
|
-
scheme = params[:scheme]
|
19
17
|
overwrite = params[:overwrite]
|
20
18
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
19
|
+
archive_path = params[:archive_path]
|
20
|
+
scheme = params[:scheme]
|
21
|
+
runner = ::DebugFile::Runner.new({
|
22
|
+
archive_path: archive_path,
|
23
|
+
scheme: scheme
|
24
|
+
})
|
25
|
+
|
26
|
+
dsym = runner.latest_dsym
|
27
|
+
unless dsym
|
28
|
+
UI.user_error! "Not matched any archive [#{archive_path}] with scheme [#{scheme}]"
|
29
|
+
end
|
27
30
|
|
28
|
-
|
29
|
-
|
30
|
-
UI.
|
31
|
+
Fastlane::UI.success "Selected #{dsym[:name]} #{dsym[:release_version]} (#{dsym[:build]}) - #{dsym[:created_at]}"
|
32
|
+
dsym[:machos].each do |macho|
|
33
|
+
Fastlane::UI.message " • #{macho[:uuid]} (#{macho[:arch]})"
|
31
34
|
end
|
32
35
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
release_version, build_version, created_at = version_info(xcarchive_info)
|
37
|
-
UI.success "Selected dSYM archive: #{release_version} (#{build_version}) [#{xcarchive_file}] #{created_at}"
|
36
|
+
app_dsym_filename = File.basename(dsym[:dsym_path])
|
37
|
+
output_file = File.join(params[:output_path], "#{app_dsym_filename}.zip")
|
38
|
+
Helper::DebugFileHelper.determine_output_file(output_file, overwrite)
|
38
39
|
|
40
|
+
archive_dsym_path = File.dirname(dsym[:dsym_path])
|
39
41
|
extra_dsym = params[:extra_dsym] || []
|
42
|
+
|
40
43
|
dsym_files = [app_dsym_filename].concat(extra_dsym).uniq
|
41
44
|
dsym_files.each_with_index do |filename, i|
|
42
45
|
path = File.join(archive_dsym_path, filename)
|
@@ -46,47 +49,15 @@ module Fastlane
|
|
46
49
|
dsym_files.delete_at(i)
|
47
50
|
end
|
48
51
|
end
|
49
|
-
|
52
|
+
|
53
|
+
UI.message "Prepare #{dsym_files.size} dSYM file(s) compressing"
|
54
|
+
UI.verbose dsym_files
|
50
55
|
Helper::DebugFileHelper.compress(dsym_files, output_file)
|
51
56
|
|
52
57
|
UI.success "Compressed dSYM file: #{output_file}"
|
53
58
|
Helper::DebugFileHelper.store_shard_value SharedValues::DF_DSYM_ZIP_PATH, output_file
|
54
59
|
end
|
55
60
|
|
56
|
-
def self.last_created_dsym(scheme, archive_path)
|
57
|
-
info_path = File.join(archive_path, '**', '*.xcarchive', 'Info.plist')
|
58
|
-
matched_paths = []
|
59
|
-
|
60
|
-
UI.verbose "Finding #{scheme} xcarchive in #{archive_path} ..."
|
61
|
-
Dir.glob(info_path) do |path|
|
62
|
-
info = Helper::DebugFileHelper.xcarchive_metadata(path)
|
63
|
-
name = Helper::DebugFileHelper.fetch_key(info, 'Name')
|
64
|
-
if scheme == name
|
65
|
-
xcarchive = File.basename(File.dirname(path))
|
66
|
-
release_version, build_version, created_at = version_info(info)
|
67
|
-
UI.verbose " => #{release_version} (#{build_version}) [#{xcarchive}] was created at #{created_at}"
|
68
|
-
|
69
|
-
matched_paths << path
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
return if matched_paths.empty?
|
74
|
-
|
75
|
-
UI.verbose "Found #{matched_paths.size} matched dSYM archive(s) of #{scheme}"
|
76
|
-
last_created_path = matched_paths.size == 1 ? matched_paths.first : matched_paths.max_by { |p| File.stat(p).mtime }
|
77
|
-
File.join(File.dirname(last_created_path), 'dSYMs')
|
78
|
-
end
|
79
|
-
private_class_method :last_created_dsym
|
80
|
-
|
81
|
-
def self.version_info(info)
|
82
|
-
release_version = Helper::DebugFileHelper.fetch_key(info, 'ApplicationProperties', 'CFBundleShortVersionString')
|
83
|
-
build = Helper::DebugFileHelper.fetch_key(info, 'ApplicationProperties', 'CFBundleVersion')
|
84
|
-
created_at = Helper::DebugFileHelper.fetch_key(info, 'CreationDate')
|
85
|
-
|
86
|
-
[release_version, build, created_at]
|
87
|
-
end
|
88
|
-
private_class_method :version_info
|
89
|
-
|
90
61
|
#####################################################
|
91
62
|
# @!group Documentation
|
92
63
|
#####################################################
|
@@ -100,12 +71,13 @@ module Fastlane
|
|
100
71
|
FastlaneCore::ConfigItem.new(key: :archive_path,
|
101
72
|
env_name: 'DF_DSYM_ARCHIVE_PATH',
|
102
73
|
description: 'The archive path of xcode',
|
103
|
-
type: String,
|
104
74
|
default_value: Actions.lane_context[SharedValues::XCODEBUILD_ARCHIVE] || ::DebugFile::Runner::ARCHIVE_PATH,
|
105
|
-
optional: true
|
75
|
+
optional: true,
|
76
|
+
type: String),
|
106
77
|
FastlaneCore::ConfigItem.new(key: :scheme,
|
107
78
|
env_name: 'DF_DSYM_SCHEME',
|
108
79
|
description: 'The scheme name of app',
|
80
|
+
optional: true,
|
109
81
|
type: String),
|
110
82
|
FastlaneCore::ConfigItem.new(key: :extra_dsym,
|
111
83
|
env_name: 'DF_DSYM_EXTRA_DSYM',
|
@@ -19,52 +19,64 @@ module DebugFile
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def list_dsym
|
22
|
-
archive_path
|
22
|
+
return [fetch_project_info(archive_path)] if project_archive_path? && !options[:scheme]
|
23
|
+
|
23
24
|
search_dsym(archive_path, options[:scheme])
|
24
25
|
end
|
25
26
|
|
26
27
|
private
|
27
28
|
|
28
29
|
def search_dsym(path, scheme = nil)
|
29
|
-
|
30
|
-
matched_paths = []
|
31
|
-
|
30
|
+
project_path = File.join(path, '**', '*.xcarchive')
|
32
31
|
obj = []
|
33
|
-
Dir.glob(
|
34
|
-
|
35
|
-
name = Fastlane::Helper::DebugFileHelper.fetch_key(info, 'Name')
|
36
|
-
next unless scheme.to_s.empty? || scheme == name
|
32
|
+
Dir.glob(project_path) do |path|
|
33
|
+
next unless item = fetch_project_info(path, scheme)
|
37
34
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
created_at = Fastlane::Helper::DebugFileHelper.fetch_key(info, 'CreationDate')
|
35
|
+
yield item if block_given?
|
36
|
+
obj << item
|
37
|
+
end
|
42
38
|
|
43
|
-
|
44
|
-
|
45
|
-
machos << {
|
46
|
-
arch: macho.cpusubtype,
|
47
|
-
uuid: macho[:LC_UUID][0].uuid_string
|
48
|
-
}
|
49
|
-
end
|
39
|
+
obj
|
40
|
+
end
|
50
41
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
info: info,
|
56
|
-
name: name,
|
57
|
-
release_version: release_version,
|
58
|
-
build: build,
|
59
|
-
created_at: created_at,
|
60
|
-
}
|
42
|
+
def fetch_project_info(path, scheme = nil)
|
43
|
+
info = Fastlane::Helper::DebugFileHelper.xcarchive_metadata(File.join(path, 'Info.plist'))
|
44
|
+
name = Fastlane::Helper::DebugFileHelper.fetch_key(info, 'Name')
|
45
|
+
return unless scheme.to_s.empty? || scheme == name
|
61
46
|
|
62
|
-
|
47
|
+
release_version = Fastlane::Helper::DebugFileHelper.fetch_key(info, 'ApplicationProperties', 'CFBundleShortVersionString')
|
48
|
+
build = Fastlane::Helper::DebugFileHelper.fetch_key(info, 'ApplicationProperties', 'CFBundleVersion')
|
49
|
+
dsym_path = File.join(path, 'dSYMs', "#{name}.app.dSYM")
|
50
|
+
dsym_binray_path = Dir.glob(File.join(dsym_path, '**', '*', name)).first
|
51
|
+
created_at = Fastlane::Helper::DebugFileHelper.fetch_key(info, 'CreationDate')
|
63
52
|
|
64
|
-
|
53
|
+
machos = []
|
54
|
+
Fastlane::Helper::DebugFileHelper.macho_metadata(dsym_binray_path).each do |macho|
|
55
|
+
machos << {
|
56
|
+
arch: macho.cpusubtype,
|
57
|
+
uuid: macho[:LC_UUID][0].uuid_string
|
58
|
+
}
|
65
59
|
end
|
66
60
|
|
67
|
-
|
61
|
+
{
|
62
|
+
root_path: File.basename(File.dirname(path)),
|
63
|
+
dsym_path: dsym_path,
|
64
|
+
machos: machos,
|
65
|
+
info: info,
|
66
|
+
name: name,
|
67
|
+
release_version: release_version,
|
68
|
+
build: build,
|
69
|
+
created_at: created_at,
|
70
|
+
}
|
71
|
+
end
|
72
|
+
|
73
|
+
def project_archive_path?
|
74
|
+
File.file?(File.join(archive_path, 'Info.plist')) &&
|
75
|
+
Dir.exist?(File.join(archive_path, 'dSYMs'))
|
76
|
+
end
|
77
|
+
|
78
|
+
def archive_path
|
79
|
+
@archive_path ||= File.expand_path(options.fetch(:archive_path, ARCHIVE_PATH))
|
68
80
|
end
|
69
81
|
end
|
70
82
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-debug_file
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- icyleaf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-12-
|
11
|
+
date: 2020-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-macho
|