app-info 3.2.0 → 3.3.1

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: 114f4899c399d6a4b8091b798a6089538b157eccba40c428ae36e445f79191d6
4
- data.tar.gz: 872061f173786d61f2dbad70a25405b71fc2b054ea023fb375394aed52febeeb
3
+ metadata.gz: 8e1a690f39cd0bfe4c6fe3f5eee14f3cd0af7a5be9635875bb6bda0ca7fa1e47
4
+ data.tar.gz: c07b7ae5e8d2d995a5c1d32cc7e0de1fb5e6680450936c3e08344687ed14669f
5
5
  SHA512:
6
- metadata.gz: 435e4ce4855c42b94a5ef6a9bd12e208765691ad4d2ba1f0da92eb251e6fe12ed9f9aaa95ec8ba5fd3f53b1b4ff664fb8e8a1764b32992c5c0be220e51344ce1
7
- data.tar.gz: 376b5e7ac14d0fa8a95d0bd0a6d2861532e937317ed3c6a1cea07bc3ebc7a4ac2b84b8648180a9ae298768e3b7e90335a055bf344a2a2f933a2106b2f853bb31
6
+ metadata.gz: b9f5504987f1173bc82880b974f735fba28d352223f8940aea3e497cf7c2ba9350481c52a9ca95cd9b5fdd3d68d273947e6e50201834c61210a153b8d7554cdb
7
+ data.tar.gz: c43deb531c6fa974a5da4f0816526c099e7bd20f1d7cde286cb941df596e84932cddc044e403f3737124f2ab6b43f2250c840b6fac3fc339bfd17c452d560315
@@ -30,13 +30,12 @@ jobs:
30
30
  strategy:
31
31
  fail-fast: false
32
32
  matrix:
33
+ # https://endoflife.date/ruby
33
34
  ruby: [ ruby-3.1, ruby-3.2, ruby-3.3 ]
34
- experimental: [false]
35
+ experimental: [ false ]
35
36
  include:
36
37
  - ruby: head
37
38
  experimental: true
38
- - ruby: truffleruby-head
39
- experimental: true
40
39
  steps:
41
40
  - uses: actions/checkout@v4
42
41
 
data/.rubocop.yml CHANGED
@@ -96,3 +96,6 @@ Style/SlicingWithRange:
96
96
 
97
97
  Style/ClassVars:
98
98
  Enabled: false
99
+
100
+ Lint/UselessConstantScoping:
101
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -9,6 +9,18 @@ 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.3.1] (2025-04-27)
13
+
14
+ ### Fixed
15
+
16
+ - Fix aab fetch label error.
17
+
18
+ ## [3.3.0] (2024-11-27)
19
+
20
+ ### Added
21
+
22
+ - Add `.native_codes` method for Android. #[79](https://github.com/icyleaf/app-info/pull/79)
23
+
12
24
  ## [3.2.0] (2024-09-09)
13
25
 
14
26
  ### Added
@@ -361,7 +373,8 @@ Dropped Ruby 2.5 ~ 3.0 support (no changes required.).
361
373
 
362
374
  - Updated dependency of CFPropertly list be a range between 2.3.4. (thanks @[cschroed](https://github.com/cschroed))
363
375
 
364
- [Unreleased]: https://github.com/icyleaf/app-info/compare/v3.2.0..HEAD
376
+ [Unreleased]: https://github.com/icyleaf/app-info/compare/v3.3.0..HEAD
377
+ [3.3.0]: https://github.com/icyleaf/app-info/compare/v3.2.0...v3.3.0
365
378
  [3.2.0]: https://github.com/icyleaf/app-info/compare/v3.1.4...v3.2.0
366
379
  [3.1.4]: https://github.com/icyleaf/app-info/compare/v3.1.2...v3.1.4
367
380
  [3.1.2]: https://github.com/icyleaf/app-info/compare/v3.1.0...v3.1.2
data/app_info.gemspec CHANGED
@@ -30,8 +30,12 @@ Gem::Specification.new do |spec|
30
30
  spec.add_dependency 'uuidtools', '>= 2.1.5', '< 2.3.0'
31
31
  spec.add_dependency 'icns', '~> 0.2.0'
32
32
  spec.add_dependency 'pedump', '~> 0.6.2'
33
- spec.add_dependency 'google-protobuf', '>= 4.27.1', '< 5.0.0'
33
+ spec.add_dependency 'google-protobuf', '>= 4.27.5', '< 5.0.0'
34
34
 
35
35
  spec.add_development_dependency 'bundler', '>= 1.12'
36
36
  spec.add_development_dependency 'rake', '>= 10.0'
37
+
38
+ if RUBY_VERSION >= '3.5'
39
+ spec.add_development_dependency 'logger'
40
+ end
37
41
  end
data/lib/app_info/aab.rb CHANGED
@@ -80,23 +80,33 @@ module AppInfo
80
80
  @components ||= manifest.components.transform_values
81
81
  end
82
82
 
83
+ # @param [String] base_path
84
+ # @return [Array<String>]
85
+ def native_codes(base_path: BASE_PATH)
86
+ @native_codes ||= zip.glob(::File.join(base_path, 'lib/**/*'))
87
+ .each_with_object([]) do |entry, obj|
88
+ lib = entry.name.split('/')[2]
89
+ obj << lib unless obj.include?(lib)
90
+ end
91
+ end
92
+
83
93
  def each_file
84
94
  zip.each do |entry|
85
95
  next unless entry.file?
86
96
 
87
- yield entry.name, @zip.read(entry)
97
+ yield entry.name, zip.read(entry)
88
98
  end
89
99
  end
90
100
 
91
101
  def read_file(name, base_path: BASE_PATH)
92
- content = @zip.read(entry(name, base_path: base_path))
102
+ content = zip.read(entry(name, base_path: base_path))
93
103
  return parse_binary_xml(content) if xml_file?(name)
94
104
 
95
105
  content
96
106
  end
97
107
 
98
108
  def entry(name, base_path: BASE_PATH)
99
- entry = @zip.find_entry(::File.join(base_path, name))
109
+ entry = zip.find_entry(::File.join(base_path, name))
100
110
  raise NotFoundError, "'#{name}'" if entry.nil?
101
111
 
102
112
  entry
@@ -136,6 +136,11 @@ module AppInfo
136
136
  not_implemented_error!(__method__)
137
137
  end
138
138
 
139
+ # @abstract Subclass and override {#native_codes} to implement.
140
+ def native_codes
141
+ not_implemented_error!(__method__)
142
+ end
143
+
139
144
  # @abstract Subclass and override {#zip} to implement.
140
145
  def zip
141
146
  not_implemented_error!(__method__)
data/lib/app_info/apk.rb CHANGED
@@ -59,6 +59,14 @@ module AppInfo
59
59
  components.select { |c| c.type == 'activity' }
60
60
  end
61
61
 
62
+ # @return [Array<String>]
63
+ def native_codes
64
+ @native_codes ||= zip.glob('lib/**/*').each_with_object([]) do |entry, obj|
65
+ lib = entry.name.split('/')[1]
66
+ obj << lib unless obj.include?(lib)
67
+ end
68
+ end
69
+
62
70
  # @return [::Android::Apk]
63
71
  def apk
64
72
  @apk ||= ::Android::Apk.new(@file)
@@ -124,7 +124,7 @@ module AppInfo
124
124
  end
125
125
 
126
126
  def label(locale: '')
127
- @resources.find(application.label, locale: locale).value || application.label
127
+ @resources.find(application.label, locale: locale)&.value || application.label
128
128
  end
129
129
 
130
130
  def components
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppInfo
4
- VERSION = '3.2.0'
4
+ VERSION = '3.3.1'
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.2.0
4
+ version: 3.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - icyleaf
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-09-10 00:00:00.000000000 Z
11
+ date: 2025-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: CFPropertyList
@@ -192,7 +192,7 @@ dependencies:
192
192
  requirements:
193
193
  - - ">="
194
194
  - !ruby/object:Gem::Version
195
- version: 4.27.1
195
+ version: 4.27.5
196
196
  - - "<"
197
197
  - !ruby/object:Gem::Version
198
198
  version: 5.0.0
@@ -202,7 +202,7 @@ dependencies:
202
202
  requirements:
203
203
  - - ">="
204
204
  - !ruby/object:Gem::Version
205
- version: 4.27.1
205
+ version: 4.27.5
206
206
  - - "<"
207
207
  - !ruby/object:Gem::Version
208
208
  version: 5.0.0
@@ -328,7 +328,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
328
328
  - !ruby/object:Gem::Version
329
329
  version: '0'
330
330
  requirements: []
331
- rubygems_version: 3.5.9
331
+ rubygems_version: 3.5.22
332
332
  signing_key:
333
333
  specification_version: 4
334
334
  summary: Teardown tool for all most app, analysis metedata like version, name, icon