app-info 2.8.2 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/dependabot.yml +12 -7
- data/.github/workflows/ci.yml +7 -5
- data/.github/workflows/create_release.yml +15 -0
- data/.rubocop.yml +33 -11
- data/CHANGELOG.md +107 -1
- data/Gemfile +10 -5
- data/README.md +82 -15
- data/Rakefile +11 -0
- data/app_info.gemspec +14 -5
- data/lib/app_info/aab.rb +76 -110
- data/lib/app_info/android/signature.rb +114 -0
- data/lib/app_info/android/signatures/base.rb +53 -0
- data/lib/app_info/android/signatures/info.rb +158 -0
- data/lib/app_info/android/signatures/v1.rb +63 -0
- data/lib/app_info/android/signatures/v2.rb +121 -0
- data/lib/app_info/android/signatures/v3.rb +131 -0
- data/lib/app_info/android/signatures/v4.rb +18 -0
- data/lib/app_info/android.rb +181 -0
- data/lib/app_info/apk.rb +77 -112
- data/lib/app_info/apple.rb +192 -0
- data/lib/app_info/certificate.rb +176 -0
- data/lib/app_info/const.rb +76 -0
- data/lib/app_info/core_ext/object/try.rb +3 -1
- data/lib/app_info/core_ext/string/inflector.rb +2 -0
- data/lib/app_info/dsym/debug_info.rb +81 -0
- data/lib/app_info/dsym/macho.rb +62 -0
- data/lib/app_info/dsym.rb +35 -135
- data/lib/app_info/error.rb +3 -1
- data/lib/app_info/file.rb +49 -0
- data/lib/app_info/helper/archive.rb +37 -0
- data/lib/app_info/helper/file_size.rb +25 -0
- data/lib/app_info/helper/generate_class.rb +29 -0
- data/lib/app_info/helper/protobuf.rb +12 -0
- data/lib/app_info/helper/signatures.rb +229 -0
- data/lib/app_info/helper.rb +5 -128
- data/lib/app_info/info_plist.rb +66 -29
- data/lib/app_info/ipa/framework.rb +4 -4
- data/lib/app_info/ipa.rb +61 -135
- data/lib/app_info/macos.rb +54 -102
- data/lib/app_info/mobile_provision.rb +66 -48
- data/lib/app_info/pe.rb +322 -0
- data/lib/app_info/png_uncrush.rb +25 -5
- data/lib/app_info/proguard.rb +39 -22
- data/lib/app_info/protobuf/manifest.rb +22 -11
- data/lib/app_info/protobuf/models/Configuration_pb.rb +1 -0
- data/lib/app_info/protobuf/models/README.md +8 -1
- data/lib/app_info/protobuf/models/Resources.proto +51 -0
- data/lib/app_info/protobuf/models/Resources_pb.rb +42 -0
- data/lib/app_info/protobuf/resources.rb +5 -5
- data/lib/app_info/version.rb +1 -1
- data/lib/app_info.rb +93 -43
- metadata +57 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 77ca2c693d75ac261a17cb20e06e643a5de75a4d9eb15b1b5f83a151780368df
|
4
|
+
data.tar.gz: e9d70889b047b04b60f50a70a20d9651145486c855e059999a8037828e53e9a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c186bac4cab303067045830362c0f95deefc7c2488375f8dcb2113ea1bbc019982d645f4a29c44ab946e55c238c7e4820d0f9c1f443346143f4ed4183ebcaf32
|
7
|
+
data.tar.gz: 3755af0041ef4068a6e28399d77c17744fe7f76cf321aca94e719b19fcf1357ad64a06a63b191a9960a347423d874355dfda6995208a0ae992769de5635e2582
|
data/.github/dependabot.yml
CHANGED
@@ -1,9 +1,14 @@
|
|
1
1
|
version: 2
|
2
2
|
updates:
|
3
|
-
- package-ecosystem: bundler
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
3
|
+
- package-ecosystem: bundler
|
4
|
+
directory: "/"
|
5
|
+
schedule:
|
6
|
+
interval: daily
|
7
|
+
time: "21:00"
|
8
|
+
timezone: Asia/Shanghai
|
9
|
+
open-pull-requests-limit: 10
|
10
|
+
|
11
|
+
- package-ecosystem: "github-actions"
|
12
|
+
directory: "/"
|
13
|
+
schedule:
|
14
|
+
interval: "daily"
|
data/.github/workflows/ci.yml
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
name: CI
|
2
2
|
on:
|
3
3
|
push:
|
4
|
+
paths-ignore:
|
5
|
+
- '*.md'
|
4
6
|
branches:
|
5
|
-
-
|
7
|
+
- main
|
6
8
|
pull_request:
|
7
9
|
|
8
10
|
jobs:
|
@@ -12,11 +14,11 @@ jobs:
|
|
12
14
|
strategy:
|
13
15
|
fail-fast: false
|
14
16
|
matrix:
|
15
|
-
ruby: [ ruby-2.5, ruby-2.6, ruby-2.7, ruby-3.0 ]
|
17
|
+
ruby: [ ruby-2.5, ruby-2.6, ruby-2.7, ruby-3.0, ruby-3.1, ruby-3.2 ]
|
16
18
|
os: [ ubuntu-latest ]
|
17
19
|
|
18
20
|
steps:
|
19
|
-
- uses: actions/checkout@
|
21
|
+
- uses: actions/checkout@v3
|
20
22
|
|
21
23
|
- uses: ruby/setup-ruby@v1
|
22
24
|
with:
|
@@ -30,11 +32,11 @@ jobs:
|
|
30
32
|
runs-on: ubuntu-latest
|
31
33
|
|
32
34
|
steps:
|
33
|
-
- uses: actions/checkout@
|
35
|
+
- uses: actions/checkout@v3
|
34
36
|
|
35
37
|
- uses: ruby/setup-ruby@v1
|
36
38
|
with:
|
37
|
-
ruby-version:
|
39
|
+
ruby-version: 3.0
|
38
40
|
bundler-cache: true
|
39
41
|
|
40
42
|
- name: bundle exec rubocop
|
data/.rubocop.yml
CHANGED
@@ -27,6 +27,24 @@ AllCops:
|
|
27
27
|
- 'lib/app_info/protobuf/models/*_pb.rb'
|
28
28
|
- 'main.rb'
|
29
29
|
|
30
|
+
Layout/LineLength:
|
31
|
+
Max: 100
|
32
|
+
Exclude:
|
33
|
+
- 'lib/app_info/helper/signatures.rb'
|
34
|
+
- 'lib/app_info/android/signatures/info.rb'
|
35
|
+
- 'lib/app_info/apk.rb'
|
36
|
+
|
37
|
+
Lint/AssignmentInCondition:
|
38
|
+
Enabled: false
|
39
|
+
|
40
|
+
Lint/UnusedMethodArgument:
|
41
|
+
Exclude:
|
42
|
+
- 'lib/app_info/file.rb'
|
43
|
+
|
44
|
+
Lint/UselessAssignment:
|
45
|
+
Exclude:
|
46
|
+
- 'lib/app_info/android/signatures/v3.rb'
|
47
|
+
|
30
48
|
Metrics/AbcSize:
|
31
49
|
Max: 100
|
32
50
|
|
@@ -36,13 +54,15 @@ Metrics/BlockLength:
|
|
36
54
|
- 'lib/app_info/mobile_provision.rb'
|
37
55
|
|
38
56
|
Metrics/MethodLength:
|
39
|
-
Max:
|
57
|
+
Max: 30
|
40
58
|
Exclude:
|
41
|
-
- 'lib/app_info/png_uncrush.rb'
|
42
59
|
- 'lib/app_info/mobile_provision.rb'
|
60
|
+
- 'lib/app_info/android/signatures/v2.rb'
|
61
|
+
- 'lib/app_info/android/signatures/v3.rb'
|
43
62
|
|
44
|
-
|
45
|
-
|
63
|
+
Metrics/ParameterLists:
|
64
|
+
Exclude:
|
65
|
+
- 'lib/app_info/helper/signatures.rb'
|
46
66
|
|
47
67
|
Metrics/ClassLength:
|
48
68
|
CountComments: false
|
@@ -54,12 +74,16 @@ Metrics/CyclomaticComplexity:
|
|
54
74
|
Metrics/PerceivedComplexity:
|
55
75
|
Max: 18
|
56
76
|
|
57
|
-
|
58
|
-
|
77
|
+
Metrics/BlockNesting:
|
78
|
+
Exclude:
|
79
|
+
- 'lib/app_info/dsym.rb'
|
59
80
|
|
60
81
|
Style/Documentation:
|
61
82
|
Enabled: false
|
62
83
|
|
84
|
+
Style/ClassAndModuleChildren:
|
85
|
+
Enabled: false
|
86
|
+
|
63
87
|
Style/PerlBackrefs:
|
64
88
|
Exclude:
|
65
89
|
- 'lib/app_info/core_ext/string/inflector.rb'
|
@@ -67,10 +91,8 @@ Style/PerlBackrefs:
|
|
67
91
|
Style/DocumentDynamicEvalDefinition:
|
68
92
|
Enabled: false
|
69
93
|
|
70
|
-
Metrics/BlockNesting:
|
71
|
-
Exclude:
|
72
|
-
- 'lib/app_info/dsym.rb'
|
73
|
-
|
74
|
-
|
75
94
|
Style/SlicingWithRange:
|
76
95
|
Enabled: false
|
96
|
+
|
97
|
+
Style/ClassVars:
|
98
|
+
Enabled: false
|
data/CHANGELOG.md
CHANGED
@@ -9,6 +9,104 @@ 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
|
+
|
46
|
+
## [3.0.0.beta3] (2023-04-05)
|
47
|
+
|
48
|
+
### Added
|
49
|
+
|
50
|
+
- Android parser `.icons` method add exclude param to filter icons.
|
51
|
+
|
52
|
+
### Changed
|
53
|
+
|
54
|
+
- Rename `.platform` to `.manufacturer`, rename `.opera_sytem` to `.platform` for all parsers.
|
55
|
+
|
56
|
+
### Fixed
|
57
|
+
|
58
|
+
- Minor fixes.
|
59
|
+
|
60
|
+
## [3.0.0.beta2] (2023-04-04)
|
61
|
+
|
62
|
+
### Changed
|
63
|
+
|
64
|
+
- Re-organize categories `.platform`, `.opera_sytem` and `.device` for all parsers. [#58](https://github.com/icyleaf/app_info/pull/58)
|
65
|
+
- Change ExportType values type to symbol both IPA and macOS parsers. [#58](https://github.com/icyleaf/app_info/pull/58)
|
66
|
+
|
67
|
+
## [3.0.0.beta1] (2023-04-04)
|
68
|
+
|
69
|
+
### Added
|
70
|
+
|
71
|
+
- New Windows PE format parser. [#47](https://github.com/icyleaf/app_info/pull/47)
|
72
|
+
- Android parser add v2, v3 scheme signature support. [#55](https://github.com/icyleaf/app_info/pull/55]
|
73
|
+
- dSYM parer accept multi dSYM target in a zip file. [#56](https://github.com/icyleaf/app_info/pull/56)
|
74
|
+
- Better document for yardoc.
|
75
|
+
|
76
|
+
### Changed
|
77
|
+
|
78
|
+
- Add `AppInfo::File` base class for all parsers.
|
79
|
+
- Add `AppInfo::Certifiate` X509 certificate wrapped and apply in Android/MobileProvision.
|
80
|
+
- Remove `.sign_version` method in Android parser.
|
81
|
+
- Rename `.file_type` to `.format` method in all parers and return a `AppInfo::Format` type.
|
82
|
+
- Remove duplice `AppInfo::AndroidDevice` class.
|
83
|
+
- Remove `AppInfo::MobileProvision::DeveloperCertificate` class, use `AppInfo::Certifiate` instead.
|
84
|
+
- Deprecate `.signs` and `.certifiates` methods in Android parser, use `.signatures` instead.
|
85
|
+
- Deprecate `.developer_certs` method in MobileProvision parser, use `.certificates` instead.
|
86
|
+
|
87
|
+
### Fixed
|
88
|
+
|
89
|
+
- Fixed minor typo.
|
90
|
+
|
91
|
+
## [2.8.5] (2023-03-16)
|
92
|
+
|
93
|
+
### Fixed
|
94
|
+
|
95
|
+
- 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))
|
96
|
+
|
97
|
+
## [2.8.4] (2023-03-09)
|
98
|
+
|
99
|
+
### Fixed
|
100
|
+
|
101
|
+
- Force android device return as boolean for aab parser.
|
102
|
+
- Handle string resources referencing other resources for apk parser.
|
103
|
+
|
104
|
+
## [2.8.3] (2022-06-27)
|
105
|
+
|
106
|
+
### Fixed
|
107
|
+
|
108
|
+
- Fix properties in `AndroidManifest.xml` of aab file with null state prediction.
|
109
|
+
|
12
110
|
## [2.8.2] (2022-02-13)
|
13
111
|
|
14
112
|
### Fixed
|
@@ -228,7 +326,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|
228
326
|
|
229
327
|
- Updated dependency of CFPropertly list be a range between 2.3.4. (thanks @[cschroed](https://github.com/cschroed))
|
230
328
|
|
231
|
-
[Unreleased]: https://github.com/icyleaf/app-info/compare/
|
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
|
332
|
+
[3.0.0.beta3]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta2...v3.0.0.beta3
|
333
|
+
[3.0.0.beta2]: https://github.com/icyleaf/app-info/compare/v3.0.0.beta1...v3.0.0.beta2
|
334
|
+
[3.0.0.beta1]: https://github.com/icyleaf/app-info/compare/v2.8.5...v3.0.0.beta1
|
335
|
+
[2.8.5]: https://github.com/icyleaf/app-info/compare/v2.8.4...v2.8.5
|
336
|
+
[2.8.4]: https://github.com/icyleaf/app-info/compare/v2.8.3...v2.8.4
|
337
|
+
[2.8.3]: https://github.com/icyleaf/app-info/compare/v2.8.2...v2.8.3
|
232
338
|
[2.8.2]: https://github.com/icyleaf/app-info/compare/v2.8.1...v2.8.2
|
233
339
|
[2.8.1]: https://github.com/icyleaf/app-info/compare/v2.8.0...v2.8.1
|
234
340
|
[2.8.0]: https://github.com/icyleaf/app-info/compare/v2.7.0...v2.8.0
|
data/Gemfile
CHANGED
@@ -5,8 +5,13 @@ source 'https://rubygems.org'
|
|
5
5
|
# Specify your gem's dependencies in app-info.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
group :development do
|
9
|
+
gem 'awesome_print'
|
10
|
+
gem 'debug' # For ruby 3.0+\
|
11
|
+
gem 'yard'
|
12
|
+
end
|
13
|
+
|
14
|
+
group :development, :test do
|
15
|
+
gem 'rspec'
|
16
|
+
gem 'rubocop'
|
17
|
+
end
|
data/README.md
CHANGED
@@ -1,22 +1,38 @@
|
|
1
|
-
#
|
1
|
+
# app-info
|
2
2
|
|
3
|
-
[![Language](https://img.shields.io/badge/ruby-2.5+-701516
|
4
|
-
[![
|
5
|
-
[![
|
6
|
-
[![License](https://img.shields.io/
|
3
|
+
[![Language](https://img.shields.io/badge/ruby-2.5+-701516)](.github/workflows/ci.yml)
|
4
|
+
[![Gem version](https://img.shields.io/gem/v/app-info?include_prereleases)](https://rubygems.org/gems/app-info)
|
5
|
+
[![Build Status](https://img.shields.io/github/actions/workflow/status/icyleaf/app_info/ci.yml)](https://github.com/icyleaf/app_info/actions/workflows/ci.yml)
|
6
|
+
[![License](https://img.shields.io/github/license/icyleaf/app-info)](LICENSE)
|
7
7
|
|
8
|
-
Teardown tool for mobile app (ipa, apk and aab file), macOS app
|
8
|
+
Teardown tool for mobile app (ipa, apk and aab file), macOS app, dSYM.zip file and Windows PE file.
|
9
|
+
Analysis metedata like version, name, icon etc.
|
9
10
|
|
10
11
|
## Support
|
11
12
|
|
12
13
|
- Android file
|
13
14
|
- `.apk`
|
14
15
|
- `.aab` (Androld App Bundle)
|
15
|
-
- iOS
|
16
|
+
- iOS file
|
17
|
+
- `.ipa`
|
16
18
|
- `Info.plist` file
|
17
19
|
- `.mobileprovision`/`.provisionprofile` file
|
18
|
-
-
|
19
|
-
-
|
20
|
+
- macOS App file (archived by starnd pkzip format)
|
21
|
+
- `.app.zip`
|
22
|
+
- dSYMs file (archived by starnd pkzip format)
|
23
|
+
- `.dSYM.zip`
|
24
|
+
- Windows PE file
|
25
|
+
- `.exe`
|
26
|
+
- `.zip` (binary in a zip file)
|
27
|
+
|
28
|
+
<hr />
|
29
|
+
|
30
|
+
![Zealot Showcase](https://github.com/tryzealot/docs/blob/main/static/img/showcase-light.png#gh-light-mode-only)
|
31
|
+
![Zealot Showcase](https://github.com/tryzealot/docs/blob/main/static/img/showcase-dark.png#gh-dark-mode-only)
|
32
|
+
|
33
|
+
[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.
|
34
|
+
|
35
|
+
<hr />
|
20
36
|
|
21
37
|
## Installation
|
22
38
|
|
@@ -53,6 +69,8 @@ parser = AppInfo.parse('android.aab')
|
|
53
69
|
parser = AppInfo.parse('u-u-i-d.mobileprovision')
|
54
70
|
parser = AppInfo.parse('macOS.App.zip')
|
55
71
|
parser = AppInfo.parse('App.dSYm.zip')
|
72
|
+
parser = AppInfo.parse('win.exe')
|
73
|
+
parser = AppInfo.parse('win.zip')
|
56
74
|
|
57
75
|
# If detect file type failed, you can parse in other way
|
58
76
|
parser = AppInfo::IPA.new('iphone.ipa')
|
@@ -62,6 +80,7 @@ parser = AppInfo::InfoPlist.new('Info.plist')
|
|
62
80
|
parser = AppInfo::MobileProvision.new('uuid.mobileprovision')
|
63
81
|
parser = AppInfo::Macos.new('App.dSYm.zip')
|
64
82
|
parser = AppInfo::DSYM.new('App.dSYm.zip')
|
83
|
+
parser = AppInfo::PE.new('win.exe')
|
65
84
|
```
|
66
85
|
|
67
86
|
### iOS
|
@@ -208,12 +227,8 @@ android.deep_links
|
|
208
227
|
android.schemes
|
209
228
|
# => ['appinfo']
|
210
229
|
|
211
|
-
# get
|
212
|
-
android.
|
213
|
-
# => [...]
|
214
|
-
|
215
|
-
# get certificate list (only v1 sign)
|
216
|
-
android.certificates
|
230
|
+
# get v1-v3 scheme singature information (included unverified certificate and more)
|
231
|
+
android.signatures
|
217
232
|
# => [...]
|
218
233
|
```
|
219
234
|
|
@@ -301,6 +316,58 @@ dsym.machos.each do |macho|
|
|
301
316
|
end
|
302
317
|
```
|
303
318
|
|
319
|
+
### Windows
|
320
|
+
|
321
|
+
Accept any PE format file, such like `.exe` or `.exe` binary fin a zip file.
|
322
|
+
|
323
|
+
```ruby
|
324
|
+
win = AppInfo.parse('win.exe')
|
325
|
+
|
326
|
+
# get given file size
|
327
|
+
win.size
|
328
|
+
# => 3093823
|
329
|
+
|
330
|
+
# get given file size in human reable.
|
331
|
+
win.size(human_size: true)
|
332
|
+
# => 29 MB
|
333
|
+
|
334
|
+
# get given file size
|
335
|
+
win.binary_size
|
336
|
+
# => 20940
|
337
|
+
|
338
|
+
# get given file size in human reable.
|
339
|
+
win.size(human_size: true)
|
340
|
+
# => 20 MB
|
341
|
+
|
342
|
+
# get product name
|
343
|
+
win.name
|
344
|
+
# => AppInfo
|
345
|
+
|
346
|
+
# get app company name
|
347
|
+
win.company_name
|
348
|
+
# => EWS Studio
|
349
|
+
|
350
|
+
# get app product version (alias to release_version)
|
351
|
+
win.product_version
|
352
|
+
# => 1.0.0
|
353
|
+
|
354
|
+
# get app assembly version (alias to build_version)
|
355
|
+
win.assembly_version
|
356
|
+
# => 1.0.0
|
357
|
+
|
358
|
+
# detect architecture(s)
|
359
|
+
win.archs
|
360
|
+
# => x64
|
361
|
+
|
362
|
+
# get all imports files
|
363
|
+
win.imports
|
364
|
+
# => [KERNEL32.dll, ...]
|
365
|
+
|
366
|
+
# get app icons (bmp format image)
|
367
|
+
win.icons
|
368
|
+
# => [{:name=>"ICON.bmp", :file=>"{path}/ICON.bmp"}, :dimensions=>[64, 64]}, ...]
|
369
|
+
```
|
370
|
+
|
304
371
|
## CLI Shell (Interactive console)
|
305
372
|
|
306
373
|
It is possible to use this gem as a command line interface to parse mobile app:
|
data/Rakefile
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
$LOAD_PATH.unshift File.expand_path('lib', __dir__)
|
4
4
|
require 'app_info'
|
5
|
+
require 'yard'
|
5
6
|
require 'bundler/gem_tasks'
|
6
7
|
require 'rspec/core/rake_task'
|
7
8
|
require 'rubocop/rake_task'
|
@@ -9,3 +10,13 @@ require 'rubocop/rake_task'
|
|
9
10
|
RSpec::Core::RakeTask.new(:spec)
|
10
11
|
|
11
12
|
task default: :spec
|
13
|
+
|
14
|
+
task :doc do
|
15
|
+
YARD::Rake::YardocTask.new do |t|
|
16
|
+
t.files = ['lib/**/*.rb', 'README.md', 'LICENSE']
|
17
|
+
# t.options = ['--any', '--extra', '--opts'] # optional
|
18
|
+
# t.stats_options = ['--list-undoc'] # optional
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
|
data/app_info.gemspec
CHANGED
@@ -21,16 +21,25 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.required_ruby_version = '>= 2.5'
|
22
22
|
|
23
23
|
spec.add_dependency 'CFPropertyList', '< 3.1.0', '>= 2.3.4'
|
24
|
-
spec.add_dependency 'image_size', '>= 1.5', '< 3.
|
24
|
+
spec.add_dependency 'image_size', '>= 1.5', '< 3.3'
|
25
25
|
spec.add_dependency 'ruby-macho', '>= 1.4', '< 4'
|
26
|
-
spec.add_dependency 'android_parser', '~> 2.
|
26
|
+
spec.add_dependency 'android_parser', '~> 2.6.0'
|
27
27
|
spec.add_dependency 'rubyzip', '>= 1.2', '< 3.0'
|
28
28
|
spec.add_dependency 'uuidtools', '>= 2.1.5', '< 2.3.0'
|
29
29
|
spec.add_dependency 'icns', '~> 0.2.0'
|
30
|
-
spec.add_dependency '
|
30
|
+
spec.add_dependency 'pedump', '~> 0.6.2'
|
31
|
+
spec.add_dependency 'google-protobuf', '>= 3.19.4', '< 3.23.0'
|
31
32
|
|
32
33
|
spec.add_development_dependency 'bundler', '>= 1.12'
|
33
34
|
spec.add_development_dependency 'rake', '>= 10.0'
|
34
|
-
|
35
|
-
spec.
|
35
|
+
|
36
|
+
spec.post_install_message = <<~ENDBANNER
|
37
|
+
AppInfo 3.0 is coming!
|
38
|
+
**********************
|
39
|
+
The public API of some AppInfo classes has been changed.
|
40
|
+
|
41
|
+
Please ensure that your Gemfiles and .gemspecs are suitably restrictive
|
42
|
+
to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.8.5).
|
43
|
+
See https://github.com/icyleaf/app_info for details.
|
44
|
+
ENDBANNER
|
36
45
|
end
|