app-info 3.0.0.beta3 → 3.0.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: f8ca25ba9f5e54dc762996f1b7393593393b29adcbe0622131a905aa2f494141
4
- data.tar.gz: c2839b1ac586397d1f76833fd9b4947722892ae584d8942ccb8e0d706f207210
3
+ metadata.gz: 77ca2c693d75ac261a17cb20e06e643a5de75a4d9eb15b1b5f83a151780368df
4
+ data.tar.gz: e9d70889b047b04b60f50a70a20d9651145486c855e059999a8037828e53e9a6
5
5
  SHA512:
6
- metadata.gz: cb08a20e764b4c8c35c7c03f43c3472b89cf0ebf34889080ef28c52e97c51b8700c91d09acd073cf21ece653c19beab34ecfc4b0477a5c534d23314bb503ff83
7
- data.tar.gz: c7aa998b3224be94bbb20589fe57906356e93788739383d89703fafd1856f0eca948c33d046561460400590bf727fcd633f98edcfb321f11d740bbe00aa48aa2
6
+ metadata.gz: c186bac4cab303067045830362c0f95deefc7c2488375f8dcb2113ea1bbc019982d645f4a29c44ab946e55c238c7e4820d0f9c1f443346143f4ed4183ebcaf32
7
+ data.tar.gz: 3755af0041ef4068a6e28399d77c17744fe7f76cf321aca94e719b19fcf1357ad64a06a63b191a9960a347423d874355dfda6995208a0ae992769de5635e2582
data/CHANGELOG.md CHANGED
@@ -9,6 +9,40 @@ 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] (2023-04-18)
13
+
14
+ ### Added
15
+
16
+ - New Windows PE format parser. [#47](https://github.com/icyleaf/app_info/pull/47)
17
+ - Android parser add v2, v3 scheme signature support. [#55](https://github.com/icyleaf/app_info/pull/55]
18
+ - dSYM parer accept multi dSYM target in a zip file. [#56](https://github.com/icyleaf/app_info/pull/56)
19
+ - Better document for yardoc.
20
+ - Android parser `.icons` method add exclude param to filter icons.
21
+ - Add `.files` method to proguard parser.
22
+
23
+ ### Changed
24
+
25
+ - Add `AppInfo::File` base class for all parsers.
26
+ - Add `AppInfo::Certifiate` X509 certificate wrapped and apply in Android/MobileProvision.
27
+ - Re-organize categories `.platform` to `.manufacturer`, `.platform` and `.device` for all parsers.
28
+ - Remove `.sign_version` method in Android parser.
29
+ - Rename `.file_type` to `.format` method in all parers and return a `AppInfo::Format` type.
30
+ - Remove duplice `AppInfo::AndroidDevice` class.
31
+ - Remove `AppInfo::MobileProvision::DeveloperCertificate` class, use `AppInfo::Certifiate` instead.
32
+ - Deprecate `.signs` and `.certifiates` methods in Android parser, use `.signatures` instead.
33
+ - Deprecate `.developer_certs` method in MobileProvision parser, use `.certificates` instead.
34
+ - Change ExportType values type to symbol both IPA and macOS parsers. [#58](https://github.com/icyleaf/app_info/pull/58)
35
+
36
+ ## [3.0.0.beta4] (2023-04-11)
37
+
38
+ ### Added
39
+
40
+ - Add `.files` method to proguard parser.
41
+
42
+ ### Fixed
43
+
44
+ - Fail to extract dsym contents.
45
+
12
46
  ## [3.0.0.beta3] (2023-04-05)
13
47
 
14
48
  ### Added
@@ -292,7 +326,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
292
326
 
293
327
  - Updated dependency of CFPropertly list be a range between 2.3.4. (thanks @[cschroed](https://github.com/cschroed))
294
328
 
295
- [Unreleased]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta3..HEAD
329
+ [Unreleased]: https://github.com/icyleaf/app-info/compare/v3.0.0..HEAD
330
+ [3.0.0]: https://github.com/icyleaf/app-info/compare/v2.8.5...v3.0.0
331
+ [3.0.0.beta4]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta3...v3.0.0.beta4
296
332
  [3.0.0.beta3]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta2...v3.0.0.beta3
297
333
  [3.0.0.beta2]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta1...v3.0.0.beta2
298
334
  [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'
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
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-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: CFPropertyList
@@ -292,9 +292,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
292
292
  version: '2.5'
293
293
  required_rubygems_version: !ruby/object:Gem::Requirement
294
294
  requirements:
295
- - - ">"
295
+ - - ">="
296
296
  - !ruby/object:Gem::Version
297
- version: 1.3.1
297
+ version: '0'
298
298
  requirements: []
299
299
  rubygems_version: 3.4.1
300
300
  signing_key: