app-info 2.8.4 → 2.8.5

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: 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