app-info 2.8.4 → 2.8.5

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: eaf82a6d1506255b1273449d8780190beb43d82000a8307a8bdb2f7d26db9b5f
4
- data.tar.gz: bd2a591c4586eec718b991a7a8ee9c51b42311da1c5b7d6c8c9ff47df017d6e8
3
+ metadata.gz: f9406b7552e0bea00883446b85250398c7818120de74d0d6d3545d7b9b0d7ef6
4
+ data.tar.gz: a99bb2c55b4214ad72f8e6cf2e720199902fb37ad174b71bb5f9f4d529ba81a3
5
5
  SHA512:
6
- metadata.gz: f386060b89ea25bea1b1e41d2d8e355143f109304206e57a130d4ea93769085787c712a6f0ae8dddbc8b06cb82c63802af707b6cd04f0342b98effe557e31e22
7
- data.tar.gz: 9181a83795f635f2c88f52889a9b7399cbfa62979ae7f2dabff23d2fb877287de24952d0c2fe53e41651e9c4f0ff01a5b1f7a5f6e0324b2e57684814e438d057
6
+ metadata.gz: '018d93bb67f489d4908f0701285ee6c177a627f3b5c602e90c24629da25f91fc2f5cb9b091675d471741361211289b71ed7c1ab51402f30cea843126c9c6271c'
7
+ data.tar.gz: 5eecd5818b12032898d33a14f74c43592d120ab751b2e4393591b0fd81e4df5cebb94342111478392fd84c5963f762de0383873c547176f74d546f7bfb7b8013
data/CHANGELOG.md CHANGED
@@ -9,11 +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
- ## [2.8.4] (2023-03-09)
12
+ ## [2.8.5] (2023-03-16)
13
13
 
14
14
  ### Fixed
15
15
 
16
16
  - Sync the latest appt2 proto files to parse Android SDK 31+ for aab parser. [#51](https://github.com/icyleaf/app_info/issues/51) (thanks @[UpBra](https://github.com/UpBra))
17
+
18
+ ## [2.8.4] (2023-03-09)
19
+
20
+ ### Fixed
21
+
17
22
  - Force android device return as boolean for aab parser.
18
23
  - Handle string resources referencing other resources for apk parser.
19
24
 
@@ -242,7 +247,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
242
247
 
243
248
  - Updated dependency of CFPropertly list be a range between 2.3.4. (thanks @[cschroed](https://github.com/cschroed))
244
249
 
245
- [Unreleased]: https://github.com/icyleaf/app-info/compare/v2.8.4..HEAD
250
+ [Unreleased]: https://github.com/icyleaf/app-info/compare/v2.8.5..HEAD
251
+ [2.8.5]: https://github.com/icyleaf/app-info/compare/v2.8.4...v2.8.5
246
252
  [2.8.4]: https://github.com/icyleaf/app-info/compare/v2.8.3...v2.8.4
247
253
  [2.8.3]: https://github.com/icyleaf/app-info/compare/v2.8.2...v2.8.3
248
254
  [2.8.2]: https://github.com/icyleaf/app-info/compare/v2.8.1...v2.8.2
data/README.md CHANGED
@@ -20,6 +20,16 @@ Teardown tool for mobile app (ipa, apk and aab file), macOS app and dSYM.zip fil
20
20
  - `.app.zip`
21
21
  - Zipped dSYMs file
22
22
  - `.dSYM.zip`
23
+
24
+ <hr />
25
+
26
+ ![Zealot Showcase](https://github.com/tryzealot/docs/blob/main/static/img/showcase-light.png#gh-light-mode-only)
27
+ ![Zealot Showcase](https://github.com/tryzealot/docs/blob/main/static/img/showcase-dark.png#gh-dark-mode-only)
28
+
29
+ [Zealot](https://zealot.ews.im/docs/user-guide/) is a self-hosted Beta App Distribution for Android, iOS and macOS apps. app_info it the core inside.
30
+
31
+ <hr />
32
+
23
33
  ## Installation
24
34
 
25
35
  Add this line to your application's Gemfile:
@@ -10,4 +10,6 @@ module AppInfo
10
10
  class NotFoundError < Error; end
11
11
 
12
12
  class UnkownFileTypeError < Error; end
13
+
14
+ class ProtobufParseError < Error; end
13
15
  end
@@ -17,7 +17,7 @@ module AppInfo
17
17
  private
18
18
 
19
19
  def parse(_)
20
- raise 'not implemented'
20
+ raise ProtobufParseError, 'not implemented'
21
21
  end
22
22
  end
23
23
 
@@ -152,6 +152,8 @@ module AppInfo
152
152
 
153
153
  def intent_filters(search: nil)
154
154
  activities.each_with_object([]) do |activity, obj|
155
+ next unless activity.respond_to?(:intent_filter)
156
+
155
157
  intent_filters = activity.intent_filter
156
158
  next if intent_filters.nil? || intent_filters&.empty?
157
159
 
@@ -182,6 +184,8 @@ module AppInfo
182
184
  CATEGORY_BROWSABLE = 'android.intent.category.BROWSABLE'
183
185
 
184
186
  def deep_links?
187
+ return unless respond_to?(:data)
188
+
185
189
  browsable? && data.any? { |d| DEEP_LINK_SCHEMES.include?(d.scheme) }
186
190
  end
187
191
 
@@ -193,6 +197,12 @@ module AppInfo
193
197
  .uniq
194
198
  end
195
199
 
200
+ def schemes?
201
+ return unless respond_to?(:data)
202
+
203
+ browsable? && data.any? { |d| !DEEP_LINK_SCHEMES.include?(d.scheme) }
204
+ end
205
+
196
206
  def schemes
197
207
  return unless schemes?
198
208
 
@@ -201,23 +211,21 @@ module AppInfo
201
211
  .uniq
202
212
  end
203
213
 
204
- def schemes?
205
- browsable? && data.any? { |d| !DEEP_LINK_SCHEMES.include?(d.scheme) }
206
- end
207
-
208
214
  def browsable?
209
215
  exist?(CATEGORY_BROWSABLE)
210
216
  end
211
217
 
212
218
  def exist?(name, type: nil)
213
219
  if type.to_s.empty? && !name.start_with?('android.intent.')
214
- raise 'Fill type or use correct name'
220
+ raise ProtobufParseError, 'Not found intent type'
215
221
  end
216
222
 
217
223
  type ||= name.split('.')[2]
218
- raise 'Not found type' unless TYPES.include?(type)
224
+ raise ProtobufParseError, 'Not found intent type' unless TYPES.include?(type)
225
+
226
+ return false unless intent = send(type.to_sym)
219
227
 
220
- values = send(type.to_sym).select { |e| e.name == name }
228
+ values = intent.select { |e| e.name == name }
221
229
  values.empty? ? false : values
222
230
  end
223
231
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AppInfo
4
- VERSION = '2.8.4'
4
+ VERSION = '2.8.5'
5
5
  end
data/lib/app_info.rb CHANGED
@@ -26,6 +26,8 @@ Zip.warn_invalid_date = false
26
26
  # AppInfo Module
27
27
  module AppInfo
28
28
  class << self
29
+ UNKNOWN_FORMAT = :unkown
30
+
29
31
  # Get a new parser for automatic
30
32
  def parse(file)
31
33
  raise NotFoundError, file unless File.exist?(file)
@@ -44,6 +46,10 @@ module AppInfo
44
46
  end
45
47
  alias dump parse
46
48
 
49
+ def parse?(file)
50
+ file_type(file) != UNKNOWN_FORMAT
51
+ end
52
+
47
53
  # Detect file type by read file header
48
54
  #
49
55
  # TODO: This can be better solution, if anyone knows, tell me please.
@@ -55,7 +61,7 @@ module AppInfo
55
61
  detect_mobileprovision(header_hex)
56
62
  end
57
63
 
58
- type || :unkown
64
+ type || UNKNOWN_FORMAT
59
65
  end
60
66
 
61
67
  private
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: 2.8.4
4
+ version: 2.8.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - icyleaf
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-09 00:00:00.000000000 Z
11
+ date: 2023-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: CFPropertyList