app-info 3.0.0.beta3 → 3.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f8ca25ba9f5e54dc762996f1b7393593393b29adcbe0622131a905aa2f494141
4
- data.tar.gz: c2839b1ac586397d1f76833fd9b4947722892ae584d8942ccb8e0d706f207210
3
+ metadata.gz: 5f280bf2b7d24887596063969a7491b89d799c39cabdd6a8149beb9d20554d73
4
+ data.tar.gz: 0a12bb443128045426a2de2c308e4d750e3269ed913d609e7546a3ec768cd6c6
5
5
  SHA512:
6
- metadata.gz: cb08a20e764b4c8c35c7c03f43c3472b89cf0ebf34889080ef28c52e97c51b8700c91d09acd073cf21ece653c19beab34ecfc4b0477a5c534d23314bb503ff83
7
- data.tar.gz: c7aa998b3224be94bbb20589fe57906356e93788739383d89703fafd1856f0eca948c33d046561460400590bf727fcd633f98edcfb321f11d740bbe00aa48aa2
6
+ metadata.gz: 144909595cce9cd8706b3e36cc2162ae61da7b4982bb06f7ba77f906473d05db7b3e67a6d86e0258911226251eab8db910f3e84c4746a8961746770fbd39cdbe
7
+ data.tar.gz: 04fbe3e5c61dded451319c6b1183ef3e1e48e1ae6297152a1354093697a2a562916f7360fbf4fc340d62864d45be11b8731fc32e43e482e81d953f06aa744f65
data/CHANGELOG.md CHANGED
@@ -9,6 +9,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
9
9
 
10
10
  > List all changes before release a new version.
11
11
 
12
+ ## [3.0.0.beta4] (2023-04-11)
13
+
14
+ ### Added
15
+
16
+ - Add `.files` method to proguard parser.
17
+
18
+ ### Fixed
19
+
20
+ - Fail to extract dsym contents.
21
+
12
22
  ## [3.0.0.beta3] (2023-04-05)
13
23
 
14
24
  ### Added
@@ -292,7 +302,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
292
302
 
293
303
  - Updated dependency of CFPropertly list be a range between 2.3.4. (thanks @[cschroed](https://github.com/cschroed))
294
304
 
295
- [Unreleased]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta3..HEAD
305
+ [Unreleased]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta4..HEAD
306
+ [3.0.0.beta4]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta3...v3.0.0.beta4
296
307
  [3.0.0.beta3]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta2...v3.0.0.beta3
297
308
  [3.0.0.beta2]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta1...v3.0.0.beta2
298
309
  [3.0.0.beta1]: https://github.com/icyleaf/app-info/compare/v2.8.5...v3.0.0.beta1
@@ -12,14 +12,17 @@ module AppInfo
12
12
  @path = path
13
13
  end
14
14
 
15
+ # @return [String]
15
16
  def object
16
17
  @object ||= ::File.basename(bin_path)
17
18
  end
18
19
 
20
+ # @return [::MachO::MachOFile, ::MachO::FatFile]
19
21
  def macho_type
20
22
  @macho_type ||= ::MachO.open(bin_path)
21
23
  end
22
24
 
25
+ # @return [Array<AppInfo::DSYM::MachO>]
23
26
  def machos
24
27
  @machos ||= case macho_type
25
28
  when ::MachO::MachOFile
@@ -37,29 +40,35 @@ module AppInfo
37
40
  end
38
41
  end
39
42
 
43
+ # @return [String, nil]
40
44
  def release_version
41
45
  info.try(:[], 'CFBundleShortVersionString')
42
46
  end
43
47
 
48
+ # @return [String, nil]
44
49
  def build_version
45
50
  info.try(:[], 'CFBundleVersion')
46
51
  end
47
52
 
53
+ # @return [String, nil]
48
54
  def identifier
49
55
  info.try(:[], 'CFBundleIdentifier').sub('com.apple.xcode.dsym.', '')
50
56
  end
51
57
  alias bundle_id identifier
52
58
 
59
+ # @return [CFPropertyList]
53
60
  def info
54
61
  return nil unless ::File.exist?(info_path)
55
62
 
56
63
  @info ||= CFPropertyList.native_types(CFPropertyList::List.new(file: info_path).value)
57
64
  end
58
65
 
66
+ # @return [String]
59
67
  def info_path
60
68
  @info_path ||= ::File.join(path, 'Contents', 'Info.plist')
61
69
  end
62
70
 
71
+ # @return [String]
63
72
  def bin_path
64
73
  @bin_path ||= lambda {
65
74
  dwarf_path = ::File.join(path, 'Contents', 'Resources', 'DWARF')
@@ -13,33 +13,40 @@ module AppInfo
13
13
  @size = size
14
14
  end
15
15
 
16
+ # @return [String]
16
17
  def cpu_name
17
18
  @file.cpusubtype
18
19
  end
19
20
 
21
+ # @return [String]
20
22
  def cpu_type
21
23
  @file.cputype
22
24
  end
23
25
 
26
+ # @return [String]
24
27
  def type
25
28
  @file.filetype
26
29
  end
27
30
 
31
+ # @return [String, Integer]
28
32
  def size(human_size: false)
29
33
  return number_to_human_size(@size) if human_size
30
34
 
31
35
  @size
32
36
  end
33
37
 
38
+ # @return [String]
34
39
  def uuid
35
40
  @file[:LC_UUID][0].uuid_string
36
41
  end
37
42
  alias debug_id uuid
38
43
 
44
+ # @return [::MachO::Headers]
39
45
  def header
40
46
  @header ||= @file.header
41
47
  end
42
48
 
49
+ # @return [Hash{Symbol => String, Integer}]
43
50
  def to_h
44
51
  {
45
52
  uuid: uuid,
data/lib/app_info/dsym.rb CHANGED
@@ -12,9 +12,11 @@ module AppInfo
12
12
  Manufacturer::APPLE
13
13
  end
14
14
 
15
+ # @return [nil]
15
16
  def each_file(&block)
16
17
  files.each { |file| block.call(file) }
17
18
  end
19
+ alias each_objects each_file
18
20
 
19
21
  # @return [Array<DebugInfo>] dsym_files files by alphabetical order
20
22
  def files
@@ -22,6 +24,7 @@ module AppInfo
22
24
  obj << DebugInfo.new(::File.join(contents, file))
23
25
  end
24
26
  end
27
+ alias objects files
25
28
 
26
29
  def clear!
27
30
  return unless @contents
@@ -52,6 +55,7 @@ module AppInfo
52
55
  end
53
56
 
54
57
  dest_path = ::File.join(base_path, file_path)
58
+ FileUtils.mkdir_p(::File.dirname(dest_path))
55
59
  entry.extract(dest_path) unless ::File.exist?(dest_path)
56
60
  end
57
61
  end
@@ -50,13 +50,6 @@ module AppInfo
50
50
  manifest.root.attributes['package']
51
51
  end
52
52
 
53
- # @return [String, nil]
54
- def releasd_version
55
- return unless manifest?
56
-
57
- manifest.root.attributes['package']
58
- end
59
-
60
53
  # @return [String, nil]
61
54
  def version_name
62
55
  return unless manifest?
@@ -73,6 +66,17 @@ module AppInfo
73
66
  end
74
67
  alias build_version version_code
75
68
 
69
+ def files
70
+ Dir.children(contents).each_with_object([]) do |filename, obj|
71
+ path = ::File.join(contents, filename)
72
+ obj << {
73
+ name: filename,
74
+ path: path,
75
+ size: ::File.size(path)
76
+ }
77
+ end
78
+ end
79
+
76
80
  # @return [REXML::Document]
77
81
  def manifest
78
82
  return unless manifest?
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppInfo
4
- VERSION = '3.0.0.beta3'
4
+ VERSION = '3.0.0.beta4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: app-info
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0.beta3
4
+ version: 3.0.0.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - icyleaf
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-07 00:00:00.000000000 Z
11
+ date: 2023-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: CFPropertyList